Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于MSI文件名更改Windows应用程序的GUI_C#_.net_User Interface_Themes_Skin - Fatal编程技术网

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

C# 基于MSI文件名更改Windows应用程序的GUI,c#,.net,user-interface,themes,skin,C#,.net,User Interface,Themes,Skin,我们正在使用C#开发一个Windows应用程序。我们希望根据brandname更改GUI(背景图像和其他控制图像和文本) 应用程序的典型安装程序的名称为brandname\u programname.msi。我们必须从MSI中获取品牌名称,并基于此分配GUI。请注意,我们没有传递任何其他对象、设置,以指示MSI中不同品牌名称以外的差异。我们如何才能达到这个结果 请不要使用WPF解决方案。您的描述让我相信您正在所有安装中发送整个品牌图像和文本集合,然后通过更改msi文件的名称来过滤gui元素 我发

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

应用程序的典型安装程序的名称为
brandname\u programname.msi
。我们必须从MSI中获取品牌名称,并基于此分配GUI。请注意,我们没有传递任何其他对象、设置,以指示MSI中不同品牌名称以外的差异。我们如何才能达到这个结果


请不要使用WPF解决方案。

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

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

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

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

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


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

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

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

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

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

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


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

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