如何在 Visual Studio 2017 中启用 WiX 项目
Posted
技术标签:
【中文标题】如何在 Visual Studio 2017 中启用 WiX 项目【英文标题】:How to Enable WiX Projects in Visual Studio 2017 【发布时间】:2016-08-08 20:58:55 【问题描述】:在 Visual Studio 2017 的新建项目对话框中,没有 Windows Installer XML (WiX) 条目。
是否可以在 Visual Studio 2017 中启用 WiX 项目?
【问题讨论】:
我刚刚安装了从这里下载的“Wix Toolset Visual Studio 2017 Extension”,它在 VS2017 中运行良好:marketplace.visualstudio.com/… 太糟糕了,它不适用于 Visual Studio 2017 Build 版本。至少那是我在 TFS 上运行的。有什么方法可以“强制”扩展?大多数程序都有一个“扩展”文件夹。不是微软? 【参考方案1】:您可以手动启用 Visual Studio 2017 与 WiX 3.10 或更早版本的兼容性:
关闭 Visual Studio 的所有实例。
复制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”,具体取决于您的版本。)
您可能需要提供管理员权限:
结果将如下所示:
复制C:\Program Files (x86)\MSBuild\Microsoft\WiX
到C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\WiX
然后以管理员身份执行以下命令:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv" /setup
(同样,根据您的版本,将“Enterprise”替换为“Professional”或“Community”。)
当您打开 Visual Studio 2017 时,WiX 3.10 及更早的项目将兼容。
【讨论】:
值得注意的是,这是不受支持的(并且需要从 VS2010 或更高版本复制 WiX 扩展文件夹)。 VS 目前不支持构建自动支持未来版本的扩展,因此每个 VS 扩展都必须明确提供对新 VS 版本的支持。在预览阶段之后,WiX 通常不会添加对新 VS 版本的支持。 现在值得注意的是(截至今天)VS2017 处于 RC 阶段。以上仍然可以,但路径是“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\...”(如果您安装了专业版。 我刚刚安装了 Enterprise 并进行了相同的过程,但使用了 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\WiX 并像魅力 我试过这个以及@Basim的回答。在 2017 RC 15.0.26014.0 中不起作用?! 我没有安装 Visual Studio 2015。所以我看到 WiX 没有安装扩展。如何在不安装 VS 2015 的情况下获取扩展?【参考方案2】:WiX v3.11.0.1507 为 VS 2017 Extension For WiX 提供全面支持。 Release Notes 提供了有关为什么需要这么长时间才能提供扩展以及与扩展和旧版本 WiX 的兼容性的见解
注意:您可以将“WiX 工具集 Visual Studio 2017 扩展”与早期版本的 WiX 工具集一起使用,但在构建托管自定义操作时存在向前兼容性问题,该问题仅在 WiX v3.11 RC 版本中得到修复。换句话说,如果您管理了自定义操作并且想要使用 VS 2017,那么您必须升级到 WiX v3.11 RC。
编辑: VS 2019 Extension 现已推出。
编辑: VS 2022 Extension 现已推出。
Wix Releases Page 有指向其他扩展的链接。
【讨论】:
另外,请注意,如果您遵循此问题中其他答案中的任何建议,则新的 Wix Toolset Visual Studio 2017 Extension 可能 无法安装或通常无法正常工作。如果是这样,请清理您手动执行的操作,然后使用官方版本进行安装。 VS 2022 提供了 Wix 工具集扩展。【参考方案3】:我发现我还必须从 "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 使用率停止了。 当 VSIXInstaller.exe 在尝试安装 Votive.vsix 时剧烈崩溃(未定义的错误代码)时,此解决方案在 docker 中有效。我想有时候逆向工程是唯一的出路……【参考方案4】:WiX 现在提供对 Visual Studio 2017 的支持。
你所要做的就是:
关闭 Visual Studio 2017 安装WiX Toolset Build Tools 安装WiX Toolset Visual Studio 2017 Extension【讨论】:
【参考方案5】: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"。
【讨论】:
这对我有帮助。我检查并从 12.0 复制了 WiX 文件夹(因为我最初使用的是 VS2013)。【参考方案6】:我已经仅安装了 VS2017,并且不得不从安装了 VS2015 的另一台机器上复制 @Chris Schiffhauer 的提及文件夹。提到的@Basim 文件夹也是如此。 另外我必须复制 "C:\Program Files (x86)\Wix Toolset 3.10\" 因为当我在我的机器上安装 WiX 时,仍然缺少一些程序集。
【讨论】:
【参考方案7】:安装 Wix Toolset Visual Studio 2019 Extension 并重新加载项目 右键单击路径中的项目文件夹并取消选中只读 安装扩展后重新加载 Wix 使用以下网址下载 https://marketplace.visualstudio.com/items?itemName=WixToolset.WixToolsetVisualStudio2019Extension
【讨论】:
以上是关于如何在 Visual Studio 2017 中启用 WiX 项目的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013
如何设置 TFS 2013 以使用 Visual Studio 2013 或 Visual Studio 2017 构建