Acabo de actualizar un proyecto de .NET 5 a .NET 6. Se compila y se ejecuta perfectamente de forma local. Cuando envío esto a Azure, ejecutando mi canalización de CI, un error informa que:
NU1202: El paquete MyStandardPackaged 1.0 no es compatible con net60 (.NETFramework,Version=v6.0). Paquete MyStandardPackaged 1.0 admite: netstandard2.1 (.NETStandard,Version=v2.1)
¿Hay alguna solución a esto, o tengo que actualizar este paquete declarando .NET 6?
Si observa con atención el mensaje de error que publicó:
NU1202: El paquete MyStandardPackaged 1.0 no es compatible con net60 (.NETFramework,Version=v6.0). Paquete MyStandardPackaged 1.0 admite: netstandard2.1 (.NETStandard,Version=v2.1)
Observe que dice que net6.0 es .NETFramework,Version=v6.0 . Sin embargo, .NET 6 es en realidad .NETCoreApp,Version=v6.0 .
Por lo tanto, concluyo que está utilizando una versión anterior de NuGet, que ni siquiera conoce .NET 5, para restaurar su proyecto/solución.
Mi recomendación es evitar la tarea NuGetCommand en Azure DevOps. No puedo pensar en ninguna razón para usarlo, todas las funciones importantes necesarias para un script de CI existen en dotnet CLI y MSBuild.exe .
Por lo tanto, si todos los proyectos en su solución/repositorio son de estilo SDK (contienen Sdk="whatever" en el archivo del proyecto), entonces use dotnet restore . Si tiene incluso un solo proyecto de estilo que no sea SDK (cada .cs en el directorio se enumera en el XML), use msbuild -t:restore . De esta manera, nunca más tendrá un problema de versiones de NuGet que no coincidan.