WiX工具集设置的结果应为EXE和MSI

时间:2015-05-12 13:46:55

标签: localization wix windows-installer exe

我使用Visual Studio 2013和WiX Toolset 3.9为我的C#项目进行了MSI设置。 结果是一个工作正常的MSI文件。

但我还需要一个EXE文件(应该做同样的,MSI文件的功能),因为很多用户都不知道MSI是什么。

当输出类型为" MSI"时,我可以编译这个项目。当我将输出类型设置为" EXE"时,我收到错误: "本地化标识符' ServiceDescription'已在多个位置重复。请解决冲突。" 这是因为我有两个WXL文件(一个用于英语,一个用于德语),并且它们具有相同的字符串ID。

我没有理解,为什么MSI的编译工作正常,但EXE的编译不起作用。

我的第二个问题是,我需要两者,MSI和EXE。所以它会很好,如果我编译项目,我将自动获得这两个文件。我不想先编译MSI,手动更改输出类型然后编译EXE。

那么我做错了什么?

1 个答案:

答案 0 :(得分:2)

我不明白您需要EXE的问题陈述,因为人们不知道MSI是什么。 MSI已经出了16年,并在世界各地使用。这对我来说没有意义。

根据我的经验,当真正需要EXE时,我只使用EXE。如果你需要的话,坚持使用MSI会更简单。

EXE的可能原因包括:

1)需要引导/链接其他包

2)想要一个更好的非MSI用户界面

3)想要一个提示语言选择的UI

4)想要在本地缓存MSI

5)想要检测以前的版本并传递次要的升级命令行参数

6)想要提前预测UAC(不是最佳实践)

7)您需要多实例服务功能。

8)你想拥有一个网络下载器,可以根据需要从互联网上按需提取包裹。

9)您想要密码保护/加密MSI。

10)其他可能无法记住的场景。

一般情况下,您并不总是需要EXE才能拥有EXE。实际上,在您选择设计和测试时,设计和测试会变得更加复杂。

如果您想要EXE,首先构建安装项目(输出:MSI),然后构建基于WiX Burn的引导程序项目(输出:EXE)