visual-studio-2017nugetvisual-studio-2019.net-standard

What do Yellow Warning Triangles mean on Dependencies in Visual Studio 2017?


I have just converted my PCL library to a new .Net Standard library and I have some Yellow Warning triangles on my Dependencies shown below:

enter image description here

During the conversion it brought all nuget packages across including dependencies so it could be dulicates.

How do I find out what the Yellow warning triangles represent?

EDIT

Build Logs:

To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages during build.' NU1605: Detected package downgrade: NUnit from 3.8.1 to 2.6.4. Reference the package directly from the project to select a different version.
MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (>= 3.8.1)
MyProj.UI.Tests -> NUnit (>= 2.6.4) NU1605: Detected package downgrade: NUnit from 3.8.1 to 2.6.4. Reference the package directly from the project to select a different version. MyProj.UI.Tests.iOS -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (>= 3.8.1) MyProj.UI.Tests.iOS -> NUnit (>= 2.6.4) NU1605: Detected package downgrade: NUnit from 3.8.1 to 2.6.4. Reference the package directly from the project to select a different version.
MyProj.UI.Tests.Android -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (>= 3.8.1) MyProj.UI.Tests.Android -> NUnit (>= 2.6.4)


Solution

  • In the build Log I happened to notice this:

    C:\Program Files\dotnet\sdk\2.0.2\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets(199,5): warning : A PackageReference for 'NETStandard.Library' was included in your project. This package is implicitly referenced by the .NET SDK and you do not typically need to reference it from your project. For more information, see https://aka.ms/sdkimplicitrefs

    I therefore went and uninstalled all packages that were listed as dependencies for the .Net Standard nuget listed here:

    .NETStandard 1.1

    • Microsoft.NETCore.Platforms (>= 1.1.0)

    • System.Collections (>= 4.3.0)

    • System.Collections.Concurrent (>= 4.3.0)

    • System.Diagnostics.Debug (>=> 4.3.0)

    • System.Diagnostics.Tools (>= 4.3.0)

    • System.Diagnostics.Tracing (>= 4.3.0)

    • System.Globalization (>= 4.3.0)

    • System.IO (>= 4.3.0)

    • System.IO.Compression (>= 4.3.0)

    • System.Linq (>= 4.3.0)

    • System.Linq.Expressions (>= 4.3.0)

    • System.Net.Http (>= 4.3.2)

    • System.Net.Primitives (>= 4.3.0)

    • System.ObjectModel (>= 4.3.0)

    • System.Reflection (>= 4.3.0)

    • System.Reflection.Extensions (>= 4.3.0)

    • System.Reflection.Primitives (>= 4.3.0)

    • System.Resources.ResourceManager (>= 4.3.0)

    • System.Runtime (>= 4.3.0)

    • System.Runtime.Extensions (>= 4.3.0)

    • System.Runtime.InteropServices (>= 4.3.0)

    • System.Runtime.InteropServices.RuntimeInformation (>=> 4.3.0)

    • System.Runtime.Numerics (>= 4.3.0)

    • System.Text.Encoding (>= 4.3.0)

    • System.Text.Encoding.Extensions (>= 4.3.0)

    • System.Text.RegularExpressions (>= 4.3.0)

    • System.Threading (>= 4.3.0)

    • System.Threading.Tasks (>= 4.3.0)

    • System.Xml.ReaderWriter (>= 4.3.0)

    • System.Xml.XDocument (>= 4.3.0)

    And the yellow warnings disappeared.

    From here: https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/

    I have also found you can use the NoWarn property like below:

    <ItemGroup>
      <PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
    </ItemGroup>