MSBuildLocator icon indicating copy to clipboard operation
MSBuildLocator copied to clipboard

FileLoadException on System.Configuration.ConfigurationManager with SDK 6.0.400-preview

Open rainersigwald opened this issue 2 years ago • 2 comments

Reported as dotnet/upgrade-assistant#1151 and related to dotnet/msbuild#7629.

System.IO.FileLoadException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at Microsoft.Build.Locator.MSBuildLocator.<>c__DisplayClass15_0.<RegisterMSBuildPath>g__TryLoadAssembly|3(AssemblyName assemblyName)
   at Microsoft.Build.Locator.MSBuildLocator.<>c__DisplayClass15_0.<RegisterMSBuildPath>b__2(AssemblyLoadContext _, AssemblyName assemblyName)
   at System.Runtime.Loader.AssemblyLoadContext.GetFirstResolvedAssemblyFromResolvingEvent(AssemblyName assemblyName)
   at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingEvent(AssemblyName assemblyName)
   at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingResolvingEvent(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)
   at Microsoft.Build.Evaluation.ToolsetReader.ReadAllToolsets(Dictionary`2 toolsets, ToolsetConfigurationReader configurationReader, PropertyDictionary`1 environmentProperties, PropertyDictionary`1 globalProperties, ToolsetDefinitionLocations locations)
   at Microsoft.Build.Evaluation.ProjectCollection.InitializeToolsetCollection(ToolsetConfigurationReader configReader)
   at Microsoft.Build.Evaluation.ProjectCollection..ctor(IDictionary`2 globalProperties, IEnumerable`1 loggers, IEnumerable`1 remoteLoggers, ToolsetDefinitionLocations toolsetDefinitionLocations, Int32 maxNodeCount, Boolean onlyLogCriticalEvents, Boolean loadProjectsReadOnly, Boolean useAsynchronousLogging)
   at Microsoft.Build.Evaluation.ProjectCollection..ctor(IDictionary`2 globalProperties)

rainersigwald avatar Jun 13 '22 15:06 rainersigwald

The same basic problem is the root cause of dotnet/sdk#26065, but there it's NuGet references of lower versions "next to the app" that are causing load failures of higher versions from the SDK.

rainersigwald avatar Jun 17 '22 16:06 rainersigwald

If I follow correctly, the only real fix for this one is for the Microsoft.Build NuGet package to release a 17.3 version and having the project reference that newer version. Other option is ugly horrible hack of "unload/reload DLLs from the MSBuild/SDK directory if they are newer than the build dep DLLs" which would not recommend :P. I mentioned /asked for status on a updated Nuget for 17.3 on the related issue.

admalledd avatar Aug 16 '22 23:08 admalledd

The issue seems to be already addressed. Feel free to reopen if it is still relevant.

YuliiaKovalova avatar Dec 14 '23 13:12 YuliiaKovalova