I have a large application which references MSBuild nuget packages so that it can open.csproj files. When I run my project it crashes because it is attempting to reference MSBuild 15.1.0.0. This is strange because I don't have anything explicitly referencing this version, and I've even added redirects in my app.config as shown here:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="17.3.1.0" />
</dependentAssembly>
If I run my app, it crashes looking for 15.1.0:
I believe the clue to the problem is shown in the output when I build my app:
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: Found conflicts between different versions of "Microsoft.Build.Framework" that could not be resolved.
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: There was a conflict between "Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "Microsoft.Build.Framework, Version=17.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: "Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and "Microsoft.Build.Framework, Version=17.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: References which depend on "Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Users\Owner\.nuget\packages\microsoft.build.framework\17.3.1\ref\net6.0\Microsoft.Build.Framework.dll].
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: C:\Users\Owner\.nuget\packages\microsoft.build.framework\17.3.1\ref\net6.0\Microsoft.Build.Framework.dll
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: Project file item includes which caused reference "C:\Users\Owner\.nuget\packages\microsoft.build.framework\17.3.1\ref\net6.0\Microsoft.Build.Framework.dll".
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: C:\Users\Owner\.nuget\packages\microsoft.build.framework\17.3.1\ref\net6.0\Microsoft.Build.Framework.dll
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: References which depend on "Microsoft.Build.Framework, Version=17.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [].
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: C:\Users\Owner\.nuget\packages\microsoft.build\17.3.1\ref\net6.0\Microsoft.Build.dll
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: Project file item includes which caused reference "C:\Users\Owner\.nuget\packages\microsoft.build\17.3.1\ref\net6.0\Microsoft.Build.dll".
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: C:\Users\Owner\.nuget\packages\microsoft.build\17.3.1\ref\net6.0\Microsoft.Build.dll
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: C:\Users\Owner\.nuget\packages\microsoft.build.utilities.core\17.3.1\ref\net6.0\Microsoft.Build.Utilities.Core.dll
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: Project file item includes which caused reference "C:\Users\Owner\.nuget\packages\microsoft.build.utilities.core\17.3.1\ref\net6.0\Microsoft.Build.Utilities.Core.dll".
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3277: C:\Users\Owner\.nuget\packages\microsoft.build.utilities.core\17.3.1\ref\net6.0\Microsoft.Build.Utilities.Core.dll
13>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2424,5): warning MSB3836: The explicit binding redirect on "Microsoft.Build.Framework, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" conflicts with an autogenerated binding redirect. Consider removing it from the application configuration file or disabling autogenerated binding redirects. The build will replace it with: "<bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" xmlns="urn:schemas-microsoft-com:asm.v1" />".
I removed the bindingredirect from the app.config file which removes the warning shown in the output window when building, but the following error is still shown at runtime:
I don't see a 15.1.0 exact version available through nuget so I haven't been able to downgrade msbuild to this exact version:
Why is my app attempting to reference Microsoft.Build.Framework 15.1.0.0? How can I solve this problem?
I was able to solve this by upgrading the Nuget package System.ComponentModel.Composition from 4.7.0 to 6.0.0. Somehow this was causing these errors but I don't understand enough to say why.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.