2010-08-18 91 views
0

我们正在使用C#开发Windows应用程序。我们想根据品牌名称更改GUI(背景图像和其他控制图像和文本)。基于MSI文件名更改Windows应用程序的GUI

该应用程序的典型安装程序名称将为brandname_programname.msi。我们必须从MSI中获取品牌名称,并根据此分配GUI。请注意,我们没有传递任何其他对象,这些设置用于指示MSI中不同品牌名称之外的差异。我们怎样才能达到这个结果?

我们不想要WPF解决方案。

+5

这似乎是一个非常脆弱的方法 - 人们随时重命名MSI文件。 – Bevan 2010-08-18 11:06:32

回答

4

您的描述让我相信您将在所有安装中发送品牌图像和文本的整个集合,然后通过更改要过滤gui元素的msi文件的名称。

我觉得这是一个非常不稳定的解决方案,因为完全依赖管理员而不是重命名msi文件 - 例如,如果管理员将名称从“CompanyA_programname.msi”更改为“programname.msi”,会发生什么情况,以“在文件名中使用我们的名字是没有用的 - 我们只有这个名称”来证明这个决定是正确的。

此外,许多客户不希望与竞争对手分享他们的品牌元素 - 因此,在msi中包含所有品牌形象可能会与您的客户协议相冲突。

在我看来,你应该从另一种方式来解决问题 - 为每个品牌构建一个单独的msi文件,或者只是构建单一类型的msi并强制安装环境提供gui元素作为文件夹或一个zip文件。然后使用这些元素来填充gui,而不管公司。

当然,文件夹/邮编方法仍然是不稳定的,并且在没有这样的文件时您必须处理这种情况,但仍然没有单点故障。

根据我以前的经验,我强烈建议你为每个品牌建立一个单独的msi文件。这样可以最大限度地减少因滥用或恶性行为而造成失败的风险。

相关问题