如何在Visual Studio 2017中启用WiX项目

64
在 Visual Studio 2017 的新建项目对话框中,没有 Windows Installer XML (WiX) 的选项。 图片描述 是否可以在 Visual Studio 2017 中启用 WiX 项目?

8
我刚刚安装了从这里下载的“Wix Toolset Visual Studio 2017 Extension”,在VS2017中效果非常好:https://marketplace.visualstudio.com/items?itemName=RobMensching.WixToolsetVisualStudio2017Extension。 - Robert Bernstein
很遗憾,它不适用于Visual Studio 2017 Build版本。至少这是我在TFS上运行的版本。有没有办法“强制”安装扩展?大多数程序都有一个“扩展”文件夹。微软没有吗? - Brain2000
7个回答

39
WiX v3.11.0.1507全面支持VS 2017 WiX扩展。通过发布说明,我们可以了解到为什么提供该扩展和与旧版本WiX的兼容性需要这么长时间。

注意:您可以使用“WiX Toolset Visual Studio 2017 Extension”与之前的WiX Toolset版本一起使用,但在构建托管自定义操作时存在向前兼容性问题,只有WiX v3.11 RC版本才能修复该问题。换言之,如果您有托管自定义操作并希望使用VS 2017,则必须升级到WiX v3.11 RC。

编辑: 现在提供VS 2019扩展

编辑: 现在提供VS 2022扩展

Wix发行版页面提供其他扩展的链接。


7
请注意,如果您按照此问题中其他答案中的任何建议进行操作,则新的Wix Toolset Visual Studio 2017 Extension安装可能会失败或者通常不工作。如果出现这种情况,请手动清理您所做的内容,然后使用官方版本安装。 - Rob Mensching
VS 2022 提供了 Wix Toolset 扩展。 - Roland

39
你可以手动启用 Visual Studio 2017 与 WiX 3.10 或更早版本的兼容性:
  1. 关闭所有Visual Studio实例。


  2. C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\WiX复制到
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\WiX

    (在目标路径中,根据您的版本将“Enterprise”替换为“Professional”或“Community”。)

    enter image description here

    您可能需要提供管理员权限:

    enter image description here

    结果将如下所示:

    enter image description here

  3. C:\Program Files (x86)\MSBuild\Microsoft\WiX复制到C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\WiX

  4. 然后以管理员身份执行以下命令:

    "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv" /setup

    (同样,根据您的版本将“Enterprise”替换为“Professional”或“Community”。)

    enter image description here

当您打开Visual Studio 2017时,WiX 3.10及更早版本的项目将兼容。

enter image description here


1
值得注意的是,这是不受支持的(需要从VS2010或更高版本复制WiX扩展文件夹)。目前,VS不支持构建自动支持未来版本的扩展,因此每个VS扩展都必须明确提供新VS版本的支持。WiX通常在预览阶段之后才会添加对新VS版本的支持。 - Sean Hall
1
现在值得注意的是(截至今天),VS2017已经处于RC阶段。以上方法仍然有效,但路径是“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE...”(如果您安装了专业版)。 - lordjeb
3
我刚刚安装了企业版,按照相同的步骤操作,但是使用了C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\WiX路径,结果很顺利。 - Eugenio Miró
我尝试了这个以及@Basim的答案。在2017 RC,15.0.26014.0中不起作用?! - l33t
5
我没有安装Visual Studio 2015。所以我看到WiX没有安装扩展程序。如何在不安装VS 2015的情况下获取扩展程序? - Harry
显示剩余8条评论

17

我发现我还需要从"C:\Program Files (x86)\MSBuild\Microsoft"和"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft"复制WiX文件夹。如果没有这个文件夹,加载WiX项目时会出错,提示找不到其中一个MSBuild目标文件。


虽然上述方法可行,但我发现当 Visual Studio 空闲时 CPU 使用率很高,并且当我禁用 WiX 扩展时,CPU 使用率就会降下来。 - Basim
这个解决方案适用于在 Docker 中安装 Votive.vsix 时,VSIXInstaller.exe 崩溃(未定义的错误代码)。我猜有时候逆向工程是唯一的前进方式... - Andreas

6

1
Chris的答案是正确的,但在我的机器上,“C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ WiX”中的Wix文件夹仅有一个名为“CustomActionCPP.zip”的模板。我不得不在其他旧版本的Visual Studio中搜索完整的Wix文件夹。通过从“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\WiX\ProjectTemplates”复制Wix,它对我起作用了。
此外,需要应用Basim的答案,通过将Wix从“C:\Program Files (x86)\MSBuild\Microsoft”复制到“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft”。

这对我很有帮助。我检查并复制了WiX文件夹从12.0(因为我一开始使用的是VS2013)。 - Rafael

0

我只安装了VS2017,并不得不从另一台安装了VS2015的机器上复制@Chris Schiffhauer提到的文件夹。对于@Basim提到的文件夹也是如此。 此外,我还不得不复制“C:\ Program Files(x86)\ Wix Toolset 3.10 \”,因为当我在我的机器上安装WiX时,这个文件夹中仍然缺少一些程序集。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接