即使使用 --no-build 标志运行 dotnet test 时如何避免 Wix 构建错误?

Posted

技术标签:

【中文标题】即使使用 --no-build 标志运行 dotnet test 时如何避免 Wix 构建错误?【英文标题】:How to avoid Wix build errors when running dotnet test even with the --no-build flag? 【发布时间】:2020-08-19 02:23:12 【问题描述】:

即使使用 --no-build 标志,如何在运行 dotnet test 时避免 Windows Installer Wix 构建? 即使安装了 Wix 工具,它仍然会失败。

命令行

dotnet.exe test --configuration Release --no-build

错误

.msi.wixproj: error : The WiX Toolset v3.11 (or newer) build tools must be installed to build this project.

【问题讨论】:

不确定,但请确认已安装 .NET 3.5。 WiX 3 依赖于这个 .NET 版本,所以如果盒子上没有它,你需要安装它。 Please see this answer for the procedure。不要忘记 Windows 更新部分。 【参考方案1】:

这是解决问题的方法,使用标志跳过将 WixTools 导入项目,使用 MSBuild 保留关键字 MSBuildRuntimeType。

您必须按如下方式修改 .wixproj 文件并添加空的 VSTest 目标。

<Target Name="VSTest" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition="'$(MSBuildRuntimeType)' != 'Core' AND '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets')" />
<Target Name="EnsureWixToolsetInstalled" Condition="'$(MSBuildRuntimeType)' != 'Core' AND '$(WixTargetsImported)' != 'true'">
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
</Target>

然后您可以使用以下命令行运行测试

dotnet test -v n --no-build

【讨论】:

有关 MSBuildRuntimeType 及其可能值的文档,请参阅docs.microsoft.com/en-us/visualstudio/msbuild/…

以上是关于即使使用 --no-build 标志运行 dotnet test 时如何避免 Wix 构建错误?的主要内容,如果未能解决你的问题,请参考以下文章

即使使用 -g 标志编译,gdb 中也没有调试符号

即使在 project.json 中将 allowunsafe 标志设置为 true 后,.NET Core 中的不安全代码编译错误

运行“svn revert ./ -R”会为每个文件输出“Reverted [file]”消息,即使只有一个文件实际上有修改

C制作文件-Wno-unused-parameter标志

Valgrind 和 Java

docker run 参数说明