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

How to avoid Wix build errors when running dotnet test even with the --no-build flag?

如何避免 Windows 安装程序 Wix 在 运行 dotnet 测试时构建,即使使用 --no-build 标志? 即使安装了 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.

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

您必须按如下方式修改 .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