Similar to #666, but this time on d15rel 26203.00
I see lots of warnings when I added a package reference from a .netstandard library project that targets netstandard1.6 to PCLCommandBase (a .netstandard1.0 library that builds separately). It floods my error list with 60 warnings, and floods me with this Package Manager output:
Restoring NuGet packages...
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1) -> runtime.win.Microsoft.Win32.Primitives (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Text.Encoding.Extensions from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.Text.Encoding.Extensions (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Text.Encoding.Extensions (>= 4.0.11)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Text.Encoding.Extensions from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Text.Encoding.Extensions (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Text.Encoding.Extensions (>= 4.0.11)
Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: System.IO.FileSystem from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Net.Primitives from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Buffers (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Security.Principal.Windows (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1) -> runtime.win.Microsoft.Win32.Primitives (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Text.Encoding.Extensions from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.Text.Encoding.Extensions (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Text.Encoding.Extensions (>= 4.0.11)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Text.Encoding.Extensions from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Text.Encoding.Extensions (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Text.Encoding.Extensions (>= 4.0.11)
Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: System.IO.FileSystem from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Net.Primitives from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Buffers (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Security.Principal.Windows (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1) -> runtime.win.Microsoft.Win32.Primitives (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Text.Encoding.Extensions from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.Text.Encoding.Extensions (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Text.Encoding.Extensions (>= 4.0.11)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Text.Encoding.Extensions from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Text.Encoding.Extensions (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Text.Encoding.Extensions (>= 4.0.11)
Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: System.IO.FileSystem from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1)
Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1)
Detected package downgrade: System.Net.Primitives from 4.3.0 to 4.0.11
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Primitives (>= 4.0.11)
Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Runtime.Handles (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.Handles (>= 4.0.1)
Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Runtime.InteropServices (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Runtime.InteropServices (>= 4.1.0)
Detected package downgrade: System.Diagnostics.Tracing from 4.3.0 to 4.1.0
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem (>= 4.0.1) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Buffers (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Diagnostics.Tracing (>= 4.1.0)
Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.1
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> System.Net.Sockets (>= 4.1.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Security.Principal.Windows (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0)
Nerdbank.MoneyManagement (>= 1.0.0) -> NETStandard.Library (>= 1.6.0) -> Microsoft.Win32.Primitives (>= 4.0.1)
All packages are already installed and there is nothing to restore.
Time Elapsed: 00:00:01.1085335
========== Finished ==========
Error occurred while restoring NuGet packages: Object reference not set to an instance of an object.
Error occurred while restoring NuGet packages: Object reference not set to an instance of an object.
@rrelyea
This related to #793, where we changed the default NETStandard.Library reference to 1.6.0.
It also looks like the same issue as https://github.com/dotnet/roslyn-project-system/issues/1474 and https://github.com/dotnet/corefx/issues/15826. In this case I believe that it's the reference that PCLCommandBase has to System.Runtime.Serialization.Primitives 4.3.0. I think changing the version of this dependency to 4.1.1 would avoid this issue.
@dsplaisted Do you mean to suggest that I change something in my code? I haven't got any explicit references to the Primitives package you mention. And just my opinion but it seems as NETStandard.Library evolves and folks reference different versions of it but reference each other, I hope we don't see a lot of this warnings on a regular basis.
@weshaggard @ericstj This looks like a downgrade on netstandard1.6 packages itself.
@AArnott you're opting into a dependency that moves your project from the Stable release train onto the Current release train. This is a big decision to make, and it's not one you have expressed in your csproj file.
You should be able to opt into the Current release train by setting:
<NetStandardImplicitPackageVersion>1.6.1</NetStandardImplicitPackageVersion>
This is how the SDK repo controls their NetStandard package version in Common.props. @dsplaisted may have an alternative property that we actually want for folks to use, but the above should get you unblocked.
I agree, though, that we need to clarify the message in a future release.
Btw, the Current dependency is not obvious. I believe it comes in via PCLCommandBase which depends on System.Runtime.Serialization.Primitives v4.3.0. The 4.3.0 version number tends to be indicative of a Current package.
@piotrpMSFT I'm confused. How have I opted into a dependency on the Current release train? I don't even know what that is. AFAIK I've just created two netstandard libraries and one depends on the other. I didn't add any dependency on *.Primitives as far as I'm aware (so I suppose we're talking about some sort of implicit dependency).
Why should I need to set some special property like NetStandardImplicitPackageVersion=1.6.1 when neither package does anything special with NETStandard.Library versions?
A couple of things.
So, @piotrpMSFT was right. You crossed from LTS (1.6.0), which was in your package reference to FTS (1.6.1) which was implicit in your project, due to the SDK. With the latest SDK, both your project and the package reference are pointing to LTS and the warnings went away.
I am closing this issue now, as I believe we understand it and we fixed the package inference to be LTS. If there is anything still unclear, please go ahead and re-activate.
@blackdwarf as discussed, this is going to be a common point of confusion given the level of tooling support available for the Current vs. Stable support trains. @AArnott is quite familiar with what is happening in .NET Core, yet it is no surprise that this experience was jarring for him. We need to be sure that we have a good explanatory document which links downgrade warnings to support trains, and we will need to do feature work in 2.0 to help better control the dev-time experience.
Thanks, @piotrpMSFT. @blackdwarf pointed out that I do indeed have an explicit reference to System.Runtime.Serialization.Primitives 4.3.0. I don't remember adding it directly, but I vaguely recall Roslyn offering to install a nuget package for me to resolve a compile failure. It offered to "find and install latest version" of it, IIRC.
So perhaps that's one angle to this concern: if installing the latest version of a package is subtly pulling me forward from Stable to Current, that may be of concern. And if that latest version wasn't even necessary, such that I could have stayed on Stable, that's a bit more of a concern, IMO.
Well, I tried adjusting that package reference from 4.3.0 to just 4.1.1, and while the command line restore and build has no warnings. VS2017 still is printing all those warnings.
So I'm guessing that my attempt to downgrade wasn't enough to get me back to the "stable" release train, is that right? How am I to know which versions belong to which release train?
@AArnott a difference of experience between VS2017 and CLI is troubling. My expectation, however, is that the VS2017 you are using is RC3 which had a bug which would cause this. Specifically, Implicit Package Reference for NetStandard.Library was pulling in Current instead of Stable. This was due to the same issue that you saw: 1.6.1 seems like a servicing update to 1.6.0, though it is actually a change that moves a project across the support train boundary. Can you try installing latest VS and seeing if this repros?
My expectation, however, is that the VS2017 you are using is RC3 which had a bug which would cause this.
I see this on d15rel 26205.0
@piotrpMSFT The difference in experience between VS and command line is probably caused by https://github.com/dotnet/roslyn-project-system/issues/1474. I've repro'd this with Andrew's project on d15rel 26205.0. The problem isn't that the implicit package reference is to the current train, it's that the implicit reference is to the stable train which is downgrading some references in the graph.
I think it's worth keeping this open to see what we can do to improve here, as right now it's super confusing.
I looked into why the package downgrades are still showing up after Andrew downgraded the System.Runtime.Serialization package reference to 4.1.1. It turns out there's also a PackageReference to System.Collections.Immutable 1.3.1. Downgrading that to 1.2.0 (as well as switching the PCLCommandBase reference to version 0.3.5) got rid of the downgrade warnings.
This just goes to show how easy it is for something like this to happen, and how hard it will be to understand what the issue is or how to fix it.
+100 on the confusion front. What would be the best way to document something like this? I can imagine a "working with nuget packages" document or something similar that lists out warning messages and then goes into detail on what is happening and how to fix it...or at least get to some saner place.
@leecow's manifest lists can also help here.
@dsplaisted Thank you. That worked. But yes I'm in favor of this issue remaining open to track addressing the confusion and discoverability of resolution steps.
@blackdwarf do we have a servicing trains doc? The implications of 1.6.0 v. 1.6.1 need to be aggressively documented and would fit well into a .md that splits .NET versions along that boundary.
@piotrpMSFT we do in PR. Once it gets merged, I will add this content to it (pretty basic at this point).
@dsplaisted Does this really fix it, or just kick the can down the road till NETStandard.Library 1.6.2 comes out?
@AArnott With .NET Standard 2.0 and .NET Core 2.0 the platform will be delivered as a single package (or close) instead of a dependency graph of 100+ packages. That should prevent a lot of cases where this would occur. Keeping the SDK updated to reference the latest version of the package, and/or having NuGet packages not express a dependency on the NETStandard.Library package when targeting ..NET Standard (see https://github.com/NuGet/Home/issues/2300) would fix any other downgrade issues with NETStandard.Library, I think.
Thanks, Daniel. That last bug you referenced sounds like a good way to track the remaining work.
Most helpful comment
@dsplaisted Thank you. That worked. But yes I'm in favor of this issue remaining open to track addressing the confusion and discoverability of resolution steps.