localization - WiX Toolset 设置的结果应该是 EXE 和 MSI

标签 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。

那么我做错了什么?

最佳答案

我不明白你需要 EXE 的问题陈述,因为人们不知道 MSI 是什么。 MSI 已经问世 16 年,并在全局范围内使用。这对我来说没有意义。

根据我的经验,我仅在确实需要 EXE 时才使用 EXE。如果您只需要 MSI,那么坚持使用 MSI 会更简单。

EXE 的可能原因包括:

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

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

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

4) 想要在本地缓存 MSI

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

6) 想要预先请求 UAC 提升(不是最佳实践)

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

8) 您想要一个网络下载器,可以根据需要从互联网上提取软件包。

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

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

一般来说,您并不总是需要一个 EXE 才能拥有一个 EXE。事实上,当您选择拥有一个时,设计和测试就会变得更加复杂。

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

关于localization - WiX Toolset 设置的结果应该是 EXE 和 MSI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30192813/

相关文章:

asp.net - Page.UICulture -- 如何检索两个字母的 UICulture 代码?

windows - 如何在 Windows 中使用 enable pseudo-locale 进行测试?

jquery - 如何根据所选语言更改日期选择器语言?

WiX 属性 ID 或条件语句

msbuild - 使用 MSBuild 将多个值传递给 Wix DefineConstants 属性

c# - 如何在安装过程中检测计算机(不仅仅是浏览器)中的 Adob​​e Acrobat Reader 安装?

.net-3.5 - 在将程序集集成到MSI之前对其进行模糊处理

ruby-on-rails - 如何解析不同语言环境格式的数字?

visual-studio-2013 - 在 Visual Studio 2013 中安装 WIX 工具集后找不到 Windows Installer XML 节点

vb.net - 如何让VB.Net安装程序运行我的代码