我们使用 Wixtoolset V3.9 来构建我们的设置。我们使用以下命令开始构建:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" /restore /t:Rebuild /p:Configuration=Release /p:Platform=x64 MySolution.sln /p:BabelEnabled=true
我们需要参数
/restore
来恢复构建服务器上的 nuget 包。由于我们通过 MSBUILD 16 构建 Wix-Setup,我们收到以下警告:
Skipping restore for project 'SetupWix.wixproj'. The project file may be invalid or missing targets required for restore.
该警告属于类别 NU1503(无论这意味着什么)。我们找不到解决甚至抑制这个警告的方法。我们尝试通过将代码 NU1503 添加到项目属性来抑制它:
无论什么原因,警告仍然出现。
问题:我们如何解决或抑制这个警告?
您可以通过将其包含在您的
NU1503
/ .proj
文件中来摆脱 msbuild
:
<!-- prevents NU1503 -->
<Target Name="_IsProjectRestoreSupported"
Returns="@(_ValidProjectsForRestore)">
<ItemGroup>
<_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" />
</ItemGroup>
</Target>
<Target Name="Restore" />
我通过使用很棒的
MSBuild Binary Log File Viewer工具通过
msbuild.binlog
检查dotnet restore /bl
文件来解决这个问题。
m0sa 的回答让我找到了一个希望更简单的解决方案。在 WarnForInvalidProjectTask 中,有一个对 DisableWarnForInvalidRestoreProjects 的检查,因此您可以通过定义该变量来在执行 nuget 恢复时禁用警告
nuget restore /p:DisableWarnForInvalidRestoreProjects="true"
我创建了问题https://github.com/NuGet/Home/issues/13748因为文档应该提供此线程的内容。