En uno de mis proyectos, he habilitado la función ImplicitUsings (C# 10). El proyecto es un proyecto Sdk de múltiples objetivos .NET 4.8 Framework y .NET 6. A partir de ayer, mis compilaciones comenzaron a fallar en Azure DevOps con el siguiente error:
Error CS0104: 'Guid' es una referencia ambigua entre 'System.Guid' y 'System.Guid'
Incluso una compilación de un compromiso previamente conocido (anteayer) ahora está fallando. La canalización no ha cambiado. Al inspeccionar la imagen del agente, se obtiene la misma versión (20220207.1). El problema no se reproduce localmente en la versión más reciente de Visual Studio 2022 (17.1).
El problema ocurre en archivos que incluyen el using System , como los archivos de migración de EF Core. Probablemente podría resolver el problema eliminando estos usos "no utilizados", pero el problema volverá a aparecer cada vez que se cree una nueva migración. Los usos generados ( obj\Debug\net48\Project.GlobalUsings.g.cs ) declaran lo siguiente using global using global::System; . Usar Guid en otros archivos no produce este error.
Actualizar. La saga continúa. Ahora también recibo un error de compilación en un proyecto de .NET 6 que hace referencia a otros proyectos de .NET Standard 2. El error se encuentra en un archivo fuente generado (DragonFruit) con la línea using System.Threading.Tasks . Se compila bien localmente, pero falla en Azure DevOps con este error:
D:\a\1\s\XXX\obj\Debug\net6.0\XXX.g.cs(8,31): error CS0104: 'Task<>' es una referencia ambigua entre 'System.Threading.Tasks. Task' y 'System.Threading.Tasks.Task' [D:\a\1\s\Source\XXX.csproj]
¿Qué podría haber cambiado para que estos usos ahora causen fallas en la compilación? ¿Y cómo puedo resolver esta advertencia sin tener que actualizar manualmente las migraciones?