Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
.NET SDK 8.0.200 ha introdotto una regressione nelle nuove opzioni CLI -getItem, -getProperty e -getTargetResult di MSBuild. Quando l'SDK viene usato per eseguire un'operazione MSBuild per un TargetFramework specifico, l'output viene duplicato, come illustrato di seguito:
> 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/
Annotazioni
Questo comportamento verrà risolto in una versione futura di .NET 8.0.200 SDK.
Versione introdotta
.NET 8.0.200
Comportamento precedente
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
Nuovo comportamento
La compilazione, il caricamento o l'esecuzione di un progetto interessato hanno esito negativo.
Tipo di cambiamento che interrompe la compatibilità
Si tratta di una modifica comportamentale che può influire sugli script utente, in particolare negli scenari CI/CD.
Motivo della modifica
Queste opzioni sono destinate a restituire valori calcolati da una singola compilazione richiesta dall'utente. Tuttavia, le operazioni MSBuild avviate dall'SDK come build e publish talvolta possono attivare una seconda chiamata a MSBuild, in particolare quando viene usata l'opzione -f per specificare che deve verificarsi una compilazione per un targetFramework specifico. In questo scenario, le opzioni -getItem, -getProperty e -getTargetResult sono state passate a entrambe le chiamate di MSBuild, invece che solo a quella che l'utente si aspettava fosse attivata.
Azione consigliata
Scegliere una delle azioni seguenti:
- Usare una versione precedente di .NET SDK (prima dell'introduzione della regressione).
- Usare una versione di .NET 8 SDK che contiene la correzione, che deve essere qualsiasi versione dopo la versione 8.0.202.
- Rimuovere qualsiasi utilizzo di
-fdalle chiamate che usano-getItemanche ,-getPropertyo-getTargetResults.