How to bypass Microsoft.Bcl.Build warning

前端 未结 2 1027
挽巷
挽巷 2021-01-19 03:20

I have a solution with multiple projects, one of them has this build warning that shows

All projects referencing Project.csproj must install nuget

相关标签:
2条回答
  • 2021-01-19 03:35

    How can I Remove/Suppress/Bypass this particular warning?

    You can add a parameter named Properties with value SkipValidatePackageReferences=true to to disable for projectreferences from projects that don't yet support Nuget, which is safe. Like this:

    <ItemGroup>
        <ProjectReference Include="..\MyProject\Project.csproj">
          <Name> Project</Name>
          <Project>{77ACF4A4-5F19-40E9-991D-BDB09B175366}</Project>
          <Private>True</Private>
          <RoleType>Web</RoleType>
          <RoleName>MyProject</RoleName>
          <UpdateDiagnosticsConnectionStringOnPublish>True</UpdateDiagnosticsConnectionStringOnPublish>
          <Properties>SkipValidatePackageReferences=true</Properties>
        </ProjectReference>
      </ItemGroup>
    
    0 讨论(0)
  • 2021-01-19 03:37

    I have resolved the issue by completely removing all Microsoft.Bcl and Microsoft.Bcl.Build references as @nozzleman suggested in comments.

    Although no dll references were present in the References list in solution explorer, there were entries in package.config for those 2 packages as below:

    <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net461" />
    <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net461" />
    

    I did a search (Ctrl + F) in full solution for the terms Microsoft.Bcl and Microsoft.Bcl.Build and removed all those entries from packages.config and also from .csproj files which had entries like below:

    <Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
      <Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
        <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
        <Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
      </Target>
    

    Those lines were appended when it was installed before and as someone manually removed references by pressing Delete key, they were not removed.

    After cleaning those 2 items from everywhere the warning is gone from build.

    0 讨论(0)
提交回复
热议问题