Layout dell'output degli artefatti
In .NET 8 e versioni successive è disponibile un'opzione per semplificare il percorso di output e la struttura di cartelle per gli output di compilazione. Tutti gli output di compilazione di tutti i progetti vengono raccolti in una posizione comune, separata dal progetto. Una posizione comune consente agli strumenti di anticipare con facilità dove sarà possibile trovare gli output.
Per impostazione predefinita, la posizione comune è una directory denominata artifacts accanto al file Directory.build.props. La struttura di cartelle nella cartella radice artifacts è la seguente:
📁 artifacts
└──📂 <Type of output>
└──📂 <Project name>
└──📂 <Pivot>
La tabella seguente mostra i valori predefiniti per ogni livello della struttura di cartelle. È possibile eseguire l'override dei valori, nonché del percorso predefinito, usando le proprietà nel file Directory.build.props.
Livello di cartella | Descrizione | Esempi |
---|---|---|
Tipo di output | Categorie di output di compilazione, ad esempio file binari, file intermedi/generati, applicazioni pubblicate e pacchetti NuGet. | bin , obj , publish , package |
Nome progetto | Separa l'output per ogni progetto. | MyApp |
Pivot | Distingue tra compilazioni di un progetto per configurazioni, framework di destinazione e identificatori di runtime diversi. Se sono necessari più elementi, vengono uniti da un carattere di sottolineatura (_ ). Può essere personalizzato usando la proprietà ArtifactsPivots di MSBuild. |
debug , debug_net8.0 , release , release_linux-x64 |
Esempi
La tabella seguente mostra esempi di percorsi che potrebbero essere creati.
Percorso | Descrizione |
---|---|
artifacts\bin\MyApp\debug | Percorso di output della compilazione per un progetto semplice quando si esegue dotnet build . |
artifacts\obj\MyApp\debug | Percorso di output intermedio per un progetto semplice quando si esegue dotnet build . |
artifacts\bin\MyApp\debug_net8.0 | Percorso di output della compilazione per la build net8.0 di un progetto con più destinazioni. |
artifacts\publish\MyApp\release_linux-x64 | Percorso di pubblicazione per un'app semplice in caso di pubblicazione per linux-x64 . |
artifacts\package\MyApp\release | Cartella in cui viene creata la versione con estensione nupkg per un progetto. |
Modalità di configurazione
Per acconsentire esplicitamente al formato di percorso di output centralizzato, aggiungere una delle proprietà MSBuild seguenti al file Directory.Build.props:
Per usare il percorso di output predefinito, impostare la proprietà
UseArtifactsOutput
sutrue
.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>
Per impostare un percorso di output personalizzato, aggiungere una proprietà
ArtifactsPath
con un valore$(MSBuildThisFileDirectory)artifacts
o specificare qualsiasi percorso si voglia usare per la cartella. Se non si ha già un file Directory.Build.props, è possibile eseguire questo comando per generare automaticamente un file contenente la proprietàArtifactsPath
:dotnet new buildprops --use-artifacts
Il file generato è simile al seguente:
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
Il nome della cartella "pivot" viene impostato per impostazione predefinita su una combinazione di moniker framework di destinazione (TFM), configurazione e identificatore di runtime (RID). Tutti gli elementi non presenti vengono omessi. Per personalizzare il nome della cartella "pivot", impostare la proprietà ArtifactsPivots
di MSBuild sulla stringa desiderata. Ad esempio:
<PropertyGroup>
...
<ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>