【问题标题】:Changing GUI of Windows Application based on the MSI filename根据 MSI 文件名更改 Windows 应用程序的 GUI
【发布时间】:2010-08-18 10:55:18
【问题描述】:

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

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

请不要使用 WPF 解决方案。

【问题讨论】:

  • 这似乎是一种非常脆弱的方法——人们一直在重命名 MSI 文件。

标签: c# .net user-interface themes skin


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2013-07-14
    • 2018-07-19
    • 2019-12-10
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多