Hemos instalado .NET desktop runtime 6.0.1 en nuestras máquinas. La construcción ocurre en un contenedor docker con una imagen construida en mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2022 , que aparentemente se actualizó a SDK 6.0.102. Ahora nuestra aplicación se bloqueará al inicio diciendo
Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'PresentationFramework, Version=6.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)Las compilaciones locales funcionan bien, tengo SDK 6.0.101 instalado.
El marco objetivo en el proyecto se define como
<TargetFramework>net6.0-windows</TargetFramework> así que pensé que debería ejecutarse en cualquier .NET 6.0, no solo en 6.0.2, sin importar con qué SDK esté construido. Según MS Docs , incluso debería ejecutarse en 6.1 de forma predeterminada, a menos que se defina una política <RollForward> diferente.
¿Qué nos estamos perdiendo?
Editar: debe ser algo con WPF, porque las aplicaciones de consola creadas en ese contenedor funcionan bien...
Esto parece ser un error conocido en .net 6.0.2
ver: https://github.com/dotnet/core/issues/7172#issuecomment-1034105137
para una solución, puede probar esto: https://github.com/dotnet/winforms/issues/6663#issuecomment-1034371295
O simplemente use la imagen sdk:6.0.101-windowsservercore-ltsc2022 hasta que se publique una versión fija