11

We are using Wixtoolset V3.9 to build our setup. We use the following command to start a build:

"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

We need the parameter /restore to restore the nuget-packagages on our build-server. Since we build our Wix-Setup by MSBUILD 16 we get the following warning:

Skipping restore for project 'SetupWix.wixproj'. The project file may be invalid or missing targets required for restore.

The warning belongs to category NU1503 (whatever this means). We cannot find a way to solve or even suppress this warning. We have tried to suppress it by adding the code NU1503 to the Project-Properties:

enter image description here

Whatever the reason, the warning still appears.

Question: How can we solve or suppress this warning?

m0sa
  • 10,712
  • 4
  • 44
  • 91
Simon
  • 4,157
  • 2
  • 46
  • 87

2 Answers2

10

TL;DR

You can get rid of NU1503 by including this in your .proj / msbuild file:

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

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


Detailed explanation

I figured this out by inspecting the msbuild.binlog file via dotnet restore /bl with the awesome MSBuild Binary Log File Viewer tool.

  1. The warning is generated by the WarnForInvalidProjectTask: enter image description here

  2. ... which are generated by the _FilterRestoreGraphProjectInputItems target...

  3. ... which calls a _IsProjectRestoreSupported target, if there is one. enter image description here

m0sa
  • 10,712
  • 4
  • 44
  • 91
  • After adding that XML to my project file (.vcxproj) I get build error: C:\code\IVL-Catheter-Programmer\AuthenticatorAccess\AuthenticatorAccess.vcxproj : error MSB4057: The target "_GenerateRestoreGraphProjectEntry" does not exist in the project. ... maybe this solution only works for WIX. – steve Dec 20 '22 at 01:25
0

The answer by m0sa lead me to a hopefully easier solution. In WarnForInvalidProjectTask there is a check for DisableWarnForInvalidRestoreProjects and you can thereby disable the warning when doing the nuget restore by defining that variable

nuget restore /p:DisableWarnForInvalidRestoreProjects="true"