Skip to content

Unexpected assembly reference conflicts when installing NLog to netstandard2.0 class library #1546

Closed
@rohit21agrawal

Description

@rohit21agrawal

From @sandersaares on August 28, 2017 7:53

Details about Problem

NuGet product used: VS UI

NuGet version (x.x.x.xxx): 4.3.0

dotnet.exe --version (if appropriate): N/A

VS version (if appropriate): 15.3.2

OS version (i.e. win10 v1607 (14393.321)): Windows 10 1703 (15063.540)

Worked before? If so, with which NuGet version: unknown

Detailed repro steps so we can see the same problem

  1. Create a new .NET Standard 2.0 class library project.
  2. Install NLog 5.0.0-beta09
  3. Build the project with MSBuild verbosity Detailed.
  4. Observe numerous warnings about assembly reference conflicts.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\microsoft.win32.registry\4.0.0\runtimes\unix\lib\netstandard1.3\Microsoft.Win32.Registry.dll' and 'Runtime:C:\Users\saares\.nuget\packages\microsoft.win32.registry\4.0.0\runtimes\win\lib\netstandard1.3\Microsoft.Win32.Registry.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.diagnostics.process\4.1.0\runtimes\linux\lib\netstandard1.4\System.Diagnostics.Process.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.diagnostics.process\4.1.0\runtimes\osx\lib\netstandard1.4\System.Diagnostics.Process.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.diagnostics.process\4.1.0\runtimes\linux\lib\netstandard1.4\System.Diagnostics.Process.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.diagnostics.process\4.1.0\runtimes\win\lib\netstandard1.4\System.Diagnostics.Process.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.diagnostics.tracesource\4.0.0\runtimes\unix\lib\netstandard1.3\System.Diagnostics.TraceSource.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.diagnostics.tracesource\4.0.0\runtimes\win\lib\netstandard1.3\System.Diagnostics.TraceSource.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.globalization.extensions\4.0.1\runtimes\unix\lib\netstandard1.3\System.Globalization.Extensions.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.globalization.extensions\4.0.1\runtimes\win\lib\netstandard1.3\System.Globalization.Extensions.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.io.filesystem.accesscontrol\4.0.0\runtimes\unix\lib\netstandard1.3\System.IO.FileSystem.AccessControl.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.io.filesystem.accesscontrol\4.0.0\runtimes\win\lib\netstandard1.3\System.IO.FileSystem.AccessControl.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.io.filesystem.watcher\4.0.0\runtimes\linux\lib\netstandard1.3\System.IO.FileSystem.Watcher.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.io.filesystem.watcher\4.0.0\runtimes\osx\lib\netstandard1.3\System.IO.FileSystem.Watcher.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.io.filesystem.watcher\4.0.0\runtimes\linux\lib\netstandard1.3\System.IO.FileSystem.Watcher.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.io.filesystem.watcher\4.0.0\runtimes\win\lib\netstandard1.3\System.IO.FileSystem.Watcher.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.net.http\4.1.0\runtimes\unix\lib\netstandard1.6\System.Net.Http.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.net.http\4.1.0\runtimes\win\lib\netstandard1.3\System.Net.Http.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.net.nameresolution\4.0.0\runtimes\unix\lib\netstandard1.3\System.Net.NameResolution.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.net.nameresolution\4.0.0\runtimes\win\lib\netstandard1.3\System.Net.NameResolution.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.net.requests\4.0.11\runtimes\unix\lib\netstandard1.3\System.Net.Requests.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.net.requests\4.0.11\runtimes\win\lib\netstandard1.3\System.Net.Requests.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.accesscontrol\4.0.0\runtimes\unix\lib\netstandard1.3\System.Security.AccessControl.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.accesscontrol\4.0.0\runtimes\win\lib\netstandard1.3\System.Security.AccessControl.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.algorithms\4.2.0\runtimes\unix\lib\netstandard1.6\System.Security.Cryptography.Algorithms.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.algorithms\4.2.0\runtimes\win\lib\netstandard1.6\System.Security.Cryptography.Algorithms.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.cng\4.2.0\runtimes\unix\lib\netstandard1.6\System.Security.Cryptography.Cng.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.cng\4.2.0\runtimes\win\lib\netstandard1.6\System.Security.Cryptography.Cng.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.csp\4.0.0\runtimes\unix\lib\netstandard1.3\System.Security.Cryptography.Csp.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.csp\4.0.0\runtimes\win\lib\netstandard1.3\System.Security.Cryptography.Csp.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.encoding\4.0.0\runtimes\unix\lib\netstandard1.3\System.Security.Cryptography.Encoding.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.encoding\4.0.0\runtimes\win\lib\netstandard1.3\System.Security.Cryptography.Encoding.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.openssl\4.0.0\lib\netstandard1.6\System.Security.Cryptography.OpenSsl.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.openssl\4.0.0\runtimes\unix\lib\netstandard1.6\System.Security.Cryptography.OpenSsl.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.x509certificates\4.1.0\runtimes\unix\lib\netstandard1.6\System.Security.Cryptography.X509Certificates.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.cryptography.x509certificates\4.1.0\runtimes\win\lib\netstandard1.6\System.Security.Cryptography.X509Certificates.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.security.principal.windows\4.0.0\runtimes\unix\lib\netstandard1.3\System.Security.Principal.Windows.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.security.principal.windows\4.0.0\runtimes\win\lib\netstandard1.3\System.Security.Principal.Windows.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.threading.accesscontrol\4.0.0\runtimes\unix\lib\netstandard1.3\System.Threading.AccessControl.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.threading.accesscontrol\4.0.0\runtimes\win\lib\netstandard1.3\System.Threading.AccessControl.dll'.  Could not determine winner due to equal file and assembly versions.
1>    Encountered conflict between 'Runtime:C:\Users\saares\.nuget\packages\system.threading.overlapped\4.0.1\runtimes\unix\lib\netstandard1.3\System.Threading.Overlapped.dll' and 'Runtime:C:\Users\saares\.nuget\packages\system.threading.overlapped\4.0.1\runtimes\win\lib\netstandard1.3\System.Threading.Overlapped.dll'.  Could not determine winner due to equal file and assembly versions.

The conflicts are unexpected because:

  • The project targets .NET Standard 2.0.
  • The NLog package targets .NET Standard 1.5.
  • Yet the conflicts talk about various different netstandard versions! 1.3, 1.4, 1.6 are all represented there for no obvious reason (to me).
  • The conflicts also reference files under "osx" and "unix" directories which is entirely unexpected to me, given that I am on Windows.

For reference, here is the dependency set from NLog nuspec for the latest .NET Standard version it targets:

<group targetFramework=".NETStandard1.5">
        <dependency id="NETStandard.Library" version="[1.6.0, )" />
        <dependency id="Microsoft.Extensions.PlatformAbstractions" version="[1.0.0, )" />
        <dependency id="System.Collections.NonGeneric" version="[4.0.1, )" />
        <dependency id="System.ComponentModel.TypeConverter" version="[4.1.0, )" />
        <dependency id="System.Data.Common" version="[4.1.0, )" />
        <dependency id="System.Diagnostics.Contracts" version="[4.0.1, )" />
        <dependency id="System.Diagnostics.Process" version="[4.1.0, )" />
        <dependency id="System.Diagnostics.StackTrace" version="[4.0.1, )" />
        <dependency id="System.Diagnostics.TraceSource" version="[4.0.0, )" />
        <dependency id="System.IO.FileSystem.Watcher" version="[4.0.0, )" />
        <dependency id="System.IO.FileSystem.AccessControl" version="[4.0.0, )" />
        <dependency id="System.Net.Requests" version="[4.0.11, )" />
        <dependency id="System.Reflection.TypeExtensions" version="[4.1.0, )" />
        <dependency id="System.Runtime.Loader" version="[4.0.0, )" />
        <dependency id="System.Runtime.Serialization.Primitives" version="[4.1.1, )" />
        <dependency id="System.Threading" version="[4.0.11, )" />
        <dependency id="System.Threading.Thread" version="[4.0.0, )" />
        <dependency id="System.Threading.ThreadPool" version="[4.0.10, )" />
        <dependency id="System.Xml.ReaderWriter" version="[4.0.11, )" />
        <dependency id="System.Xml.XmlDocument" version="[4.0.1, )" />
        <dependency id="System.Net.NameResolution" version="[4.0.0, )" />
        <dependency id="System.Security.AccessControl" version="[4.0.0, )" />
        <dependency id="System.Security.Principal" version="[4.0.1, )" />
        <dependency id="System.Threading.AccessControl" version="[4.0.0, )" />
      </group>

Sample Project

Very helpful if you can zip a project and paste into this issue!

ClassLibrary2.zip

Copied from original issue: NuGet/Home#5813

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions