Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Localization WiX工具集设置的结果应为EXE和MSI_Localization_Wix_Windows Installer_Exe - Fatal编程技术网

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

Localization WiX工具集设置的结果应为EXE和MSI,localization,wix,windows-installer,exe,Localization,Wix,Windows Installer,Exe,我使用Visual Studio 2013和WiX Toolset 3.9为我的C#项目进行了MSI设置。 结果是一个工作正常的MSI文件 但是我还需要一个EXE文件(应该做同样的事情,MSI文件做什么),因为许多用户不知道MSI是什么 当输出类型为“MSI”时,我可以编译这个项目。当我将输出类型设置为“EXE”时,会出现以下错误: “本地化标识符“ServiceDescription”在多个位置重复。请解决冲突。” 这是因为我有两个WXL文件(一个用于英语,一个用于德语),它们具有相同的字符串

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

但是我还需要一个EXE文件(应该做同样的事情,MSI文件做什么),因为许多用户不知道MSI是什么

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

我不明白为什么MSI的编译可以工作,但是EXE的编译不能工作

我的第二个问题是,我同时需要MSI和EXE。所以,如果我编译这个项目,我会让这两个文件都自动化。我不想先编译MSI,手动更改输出类型,然后编译EXE


那么我做错了什么呢?

我不理解你需要一个EXE的问题陈述,因为人们不知道MSI是什么。MSI已经问世16年了,并在全世界使用。这对我来说没有意义

根据我的经验,我只在真正需要EXE时才使用它。如果你只需要MSI,那么使用MSI就更简单了

执行EXE的可能原因包括:

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

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

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

4) 要在本地缓存MSI吗

5) 要检测早期版本并传递次要升级命令行参数吗

6) 想要提前询问UAC标高(不是最佳做法)

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

8) 您希望有一个web下载程序,可以根据需要从internet上下载软件包

9) 您希望对MSI进行密码保护/加密

10) 其他可能不记得的场景

一般来说,您并不总是需要一个EXE来拥有一个EXE。事实上,设计和测试在你选择的那一刻变得更加复杂


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

Thx以获取答案。大多数用户都知道像“setup.exe”这样的文件,因为他们每次从internet下载程序时都会得到它(或者在每个安装cd/dvd上都能找到)。他们中的大多数人不知道,他们可以使用msi文件,比如setup.exe。MSI更适合使用自动化软件部署的管理员。我不认为,我需要引导者。我可以指定msi安装项目的输出类型。如果这不是正确的方法,为什么我可以选择输出类型?我只需要在我的msi.ya上有一个exe包装器之类的东西,这叫做引导程序。并非每次从internet下载程序时都会获得setup.exe。从20世纪90年代开始就没有了。你会发现对EXE包装的要求比你想象的要复杂得多。您不想中断升级、静默安装、日志记录、传递属性等等。一个好的引导者已经考虑到了这一切。你能告诉我,这是为了什么吗!这确实是另一个问题,但我会在这里回答,因为我知道你为什么要问这个问题,而不是你认为的问题。它是.wixproj项目的4种输出类型之一。.EXE输出类型用于创建刻录引导程序。每种输出类型都有不同的XML要求。MSI需要wix/产品。MSM需要wix/模块和wix/捆绑。将MSI转换为EXE并非易事。您需要一个项目来构建MSI,另一个项目来使用它并构建引导程序EXE。