dotnet / dotnet/msbuild

ResolveAssemblyReference MSB3277 details don't specify config file as a source of versions

Open
#7,412 0 comments 2 reactions 0 assignees View on GitHub
Area: Debuggability Area: Task: Resolve Assembly References (RAR) For consideration Partner request triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

This was reported internally by @AArnott -- thanks!

`ResolveAssemblyReference` emits a warning when encountering multiple versions of the same assembly that aren't cleanly resolvable, like

```
Microsoft.Common.CurrentVersion.targets(2301,5): warning MSB3277: Found conflicts between different versions of "Microsoft.IO.Redist" that could not be resolved.
There was a conflict between "Microsoft.IO.Redist, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" and "Microsoft.IO.Redist, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51".
"Microsoft.IO.Redist, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" was chosen because it was primary and "Microsoft.IO.Redist, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" was not.
References which depend on "Microsoft.IO.Redist, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" [C:\Users\raines\.nuget\packages\microsoft.io.redist\4.7.1\lib\net472\Microsoft.IO.Redist.dll].
C:\Users\raines\.nuget\packages\microsoft.io.redist\4.7.1\lib\net472\Microsoft.IO.Redist.dll
Project file item includes which caused reference "C:\Users\raines\.nuget\packages\microsoft.io.redist\4.7.1\lib\net472\Microsoft.IO.Redist.dll".
C:\Users\raines\.nuget\packages\microsoft.io.redist\4.7.1\lib\net472\Microsoft.IO.Redist.dll
References which depend on "Microsoft.IO.Redist, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" [].
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.dll
Project file item includes which caused reference "C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.dll".
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.dll
S:\VS\...\net472\Microsoft.VisualStudio.Shell.UI.Internal.dll
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace.extensions\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.Extensions.dll
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace.extensions.vs\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.Extensions.VS.dll
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace.vsintegration\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.VSIntegration.Contracts.dll
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace.extensions\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.Extensions.dll
Project file item includes which caused reference "C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace.extensions\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.Extensions.dll".
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace.extensions\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.Extensions.dll
C:\Users\raines\.nuget\packages\microsoft.visualstudio.workspace.vsintegration\17.2.5-preview-0001\lib\net472\Microsoft.VisualStudio.Workspace.VSIntegration.Contracts.dll
S:\VS\...\net472\Microsoft.VisualStudio.Shell.UI.Internal.dll

```

This is sometimes misleading because the versions reported aren't always accurate (#4757), but there's another failure mode: the version listed can come from binding redirects in an `app.config` file, as well as from assemblies/assembly references. That's the case above: all of the actual references use the 4.0.1.1 version, but there is a binding redirect to 6.0.0.0, and that's the conflict that is relevant--but it's not in the message!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.