Condividi tramite


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 del percorso di output centralizzato, aggiungere una delle proprietà di MSBuild seguenti al file Directory.Build.props:

  • Per usare il percorso di output predefinito, impostare la proprietà UseArtifactsOutput su true.

    <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>