跳过项目“SetupWix.wixproj”的恢复。项目文件可能无效或缺少恢复所需的目标 (NU1503)

问题描述 投票:0回答:3

我们使用 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 添加到项目属性来抑制它:

enter image description here

无论什么原因,警告仍然出现。

问题:我们如何解决或抑制这个警告?

msbuild wix nuget-package-restore wix3.9
3个回答
12
投票

TL;博士

您可以通过将其包含在您的

NU1503
/
.proj
文件中来摆脱
msbuild

  <!-- prevents NU1503 -->
  <Target Name="_IsProjectRestoreSupported"
          Returns="@(_ValidProjectsForRestore)">
    <ItemGroup>
      <_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" />
    </ItemGroup>
  </Target>
  <Target Name="Restore" />

来源:https://github.com/NuGet/NuGet.Client/blob/537630019c99fdc7bed1b3dfdade72fc3e31692f/src/NuGet.Core/NuGet.Build.Tasks/NuGet.targets#L1286-L1298


详细解释

我通过使用很棒的

MSBuild Binary Log File Viewer
工具通过
msbuild.binlog
检查dotnet restore /bl文件来解决这个问题。

  1. 警告由

    WarnForInvalidProjectTask
    生成: enter image description here

  2. ...由

    _FilterRestoreGraphProjectInputItems
    目标生成...

  3. ...调用

    _IsProjectRestoreSupported
    目标(如果有的话)。 enter image description here


1
投票

m0sa 的回答让我找到了一个希望更简单的解决方案。在 WarnForInvalidProjectTask 中,有一个对 DisableWarnForInvalidRestoreProjects 的检查,因此您可以通过定义该变量来在执行 nuget 恢复时禁用警告

nuget restore /p:DisableWarnForInvalidRestoreProjects="true"

0
投票

我创建了问题https://github.com/NuGet/Home/issues/13748因为文档应该提供此线程的内容。

© www.soinside.com 2019 - 2024. All rights reserved.