Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El SDK de .NET 8.0.200 introdujo una regresión en las nuevas opciones de la CLI -getItem, -getProperty y -getTargetResult de MSBuild. Cuando se usa el SDK para realizar una operación de MSBuild para un targetFramework específico, la salida se duplica, de la siguiente manera:
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
bin\Debug/net8.0-android/android-arm64/
Nota:
Pretendemos corregir este comportamiento en una próxima versión del SDK de .NET 8.0.200.
Versión introducida
.NET 8.0.200
Comportamiento anterior
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
Nuevo comportamiento
Se produce un error en la compilación, carga o ejecución de un proyecto afectado.
Tipo de cambio disruptivo
Se trata de un cambio de comportamiento que puede afectar a los scripts de usuario, especialmente en escenarios de CI/CD.
Motivo del cambio
Estas opciones están pensadas para devolver valores calculados a partir de una única compilación solicitada por el usuario. Sin embargo, las operaciones de MSBuild iniciadas por el SDK como build y publish a veces pueden desencadenar una segunda llamada a MSBuild, especialmente cuando se usa la -f opción para especificar que se debe producir una compilación para un targetFramework específico. En ese escenario, las opciones -getItem, -getProperty y -getTargetResult se pasaron a ambas invocaciones de MSBuild, en lugar de solo a aquella que el usuario esperaba que se desencadenadora.
Acción recomendada
Elija una de las acciones siguientes:
- Use una versión anterior del SDK de .NET (antes de introducir la regresión).
- Use una versión del SDK de .NET 8 que contiene la corrección, que debe ser cualquier versión después de la versión 8.0.202.
- Elimina el uso de
-fen llamadas que también utilizan-getItem,-getProperty, o-getTargetResults.