即使使用 --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 构建错误?的主要内容,如果未能解决你的问题,请参考以下文章
即使在 project.json 中将 allowunsafe 标志设置为 true 后,.NET Core 中的不安全代码编译错误
运行“svn revert ./ -R”会为每个文件输出“Reverted [file]”消息,即使只有一个文件实际上有修改