0

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

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

我们不想要 WPF 解决方案。

4

1 回答 1

4

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

我发现这是一个非常不稳定的解决方案,因为您完全依赖于您的管理员而不是重命名 msi 文件 - 例如,如果管理员将名称从“CompanyA_programname.msi”更改为“programname.msi”,会发生什么,用“文件名中没有我们的名字——我们只有这个。”

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

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

当然,文件夹/zip 方法仍然不稳定,您必须处理没有此类文件的情况,但仍然没有单点故障。

根据我之前的经验,我强烈建议您为每个品牌建立一个单独的 msi 文件。通过这种方式,您可以最大限度地降低因误用导致的故障风险或恶意行为的风险。

于 2010-08-18T11:14:14.717 回答