我们正在使用C#开发一个Windows应用程序。我们希望更改基于品牌名称的GUI (背景图像和其他控件图像和文本)。
该应用程序的典型安装程序的名称为brandname_programname.msi
。我们必须从MSI中获取品牌名称,并基于此来分配GUI。请注意,我们不会传递任何其他对象和设置来指示MSI中不同品牌名称以外的差异。我们如何才能达到这个结果呢?
我们不需要WPF解决方案。
发布于 2010-08-18 11:14:15
你的描述让我相信你正在发送所有安装中的品牌图像和文本的整个集合,然后通过更改msi文件的名称来过滤gui元素。
我发现这是一个非常不稳定的解决方案,因为您完全依赖于管理员而不是重命名msi文件-例如,如果管理员将文件名从"CompanyA_programname.msi“更改为"programname.msi",则会发生什么情况,从而证明”在文件名中包含我们的名称没有任何用处-我们只有一个“。
此外,许多客户不希望与竞争对手共享他们的品牌元素-因此,在msi中包含所有品牌图像可能会与您的客户协议相冲突。
在我看来,您应该从另一种方式来处理这个问题-或者为每个品牌构建单独的msi文件,或者只是构建单个类型的msi并强制安装环境以文件夹或zip文件的形式提供gui元素。然后使用这些元素来填充gui,而不管是哪家公司。
诚然,文件夹/zip方法仍然是易失性的,当没有这样的文件时,您必须处理这种情况,但仍然没有单点故障。
根据我以前的经验,我强烈建议您为每个品牌构建一个单独的msi文件。通过这种方式,您可以最大限度地减少因误用而导致失败的风险,或恶性行为的风险。
https://stackoverflow.com/questions/3511293
复制相似问题