代码之家  ›  专栏  ›  技术社区  ›  codeandcloud

基于MSI文件名更改Windows应用程序的GUI

  •  0
  • codeandcloud  · 技术社区  · 14 年前

    我们正在用C#开发一个Windows应用程序。我们想改变图形用户界面(背景图像和其他控制图像和文本)的基础上的品牌名称。

    应用程序的典型安装程序的名称是 brandname_programname.msi . 我们必须从MSI获取brandname,并基于此分配GUI。请注意,我们没有传递任何其他对象,设置,以表明除了在MSI不同的品牌名称的差异。我们怎样才能达到这个结果?

    我们不要WPF解决方案。

    1 回复  |  直到 14 年前
        1
  •  4
  •   Johan Strömhielm    14 年前

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

    我发现这是一个非常不稳定的解决方案,因为您完全依赖于您的管理员不重命名msi文件-例如,如果管理员将名称从“CompanyA”更改为“CompanyA”,会发生什么情况_程序名.msi“为了正义”程序名.msi,用“在文件名中包含我们的名字没有用-我们只有这个”来证明这个决定

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

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

    诚然,folder/zip方法仍然是不稳定的,当没有这样的文件时,您必须处理这种情况,但仍然没有出现单点故障。

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