Rozložení výstupu artefaktů

V .NET 8 a novějších verzích je k dispozici možnost zjednodušit výstupní cestu a strukturu složek pro výstupy sestavení. Všechny výstupy sestavení ze všech projektů se shromažďují do společného umístění, kde jsou rozděleny dle projektu. Běžné umístění usnadňuje nástrojům předvídat, kde najít výstupy.

Ve výchozím nastavení je společné umístění adresář pojmenovaný artefakty vedle souboru Directory.build.props . Struktura složek ve složce kořenových artefaktů je následující:

📁 artifacts
    └──📂 <Type of output>
        └──📂 <Project name>
            └──📂 <Pivot>

Následující tabulka uvádí výchozí hodnoty pro každou úroveň ve struktuře složek. Hodnoty a výchozí umístění můžete přepsat pomocí vlastností v souboru Directory.build.props .

Úroveň složky Popis Příklady
Typ výstupu Kategorie výstupů sestavení, jako jsou binární soubory, zprostředkující/generované soubory, publikované aplikace a balíčky NuGet. bin, obj, , publishpackage
Název projektu† Odděluje výstup podle jednotlivých projektů. Výchozí hodnota je název projektu MSBuild. Lze přizpůsobit pomocí ArtifactsProjectName vlastnosti MSBuild. MyApp
Pivot† Rozlišuje mezi sestaveními projektu pro různé konfigurace, cílové architektury a identifikátory modulu runtime. Pokud potřebujete více prvků, jsou spojené podtržítkem (_). Lze přizpůsobit pomocí ArtifactsPivots vlastnosti MSBuild. debug, debug_net8.0, , releaserelease_linux-x64

† Pro výstupní cesty balíčku se vynechá podsložka název projektu. Kromě toho obsahuje podsložka pro pivot pouze konfiguraci.

Příklady

Následující tabulka uvádí příklady cest, které se můžou vytvořit.

Cesta Popis
artifacts\bin\MyApp\debug Výstupní cesta sestavení pro jednoduchý projekt, když spustíte dotnet build.
artifacts\obj\MyApp\debug Mezivýstupní cesta pro jednoduchý projekt při spuštění dotnet build.
artifacts\bin\MyApp\debug_net8.0 Výstupní cesta sestavení pro net8.0 sestavení projektu s více cíli.
artifacts\publish\MyApp\release_linux-x64 Cesta k publikování pro jednoduchou aplikaci při publikování pro linux-x64.
artifacts\package\release Složka, ve které se vytvoří verze .nupkg pro projekt.

Způsob konfigurace

Chcete-li zvolit centralizovaný formát výstupní cesty, přidejte do souboru Directory.Build.props jednu z následujících vlastností MSBuild:

  • Chcete-li použít výchozí výstupní umístění, nastavte UseArtifactsOutput vlastnost na truehodnotu.

    <PropertyGroup>
      <UseArtifactsOutput>true</UseArtifactsOutput>
    </PropertyGroup>
    
  • Pokud chcete nastavit vlastní výstupní umístění, přidejte ArtifactsPath vlastnost s hodnotou $(MSBuildThisFileDirectory)artifacts (nebo cokoli chcete, aby umístění složky bylo). Pokud ještě nemáte soubor Directory.Build.props , můžete spustit následující příkaz, který automaticky vygeneruje soubor obsahující ArtifactsPath tuto vlastnost:

    dotnet new buildprops --use-artifacts
    

    Vygenerovaný soubor vypadá nějak takto:

    <Project>
      <PropertyGroup>
        <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath>
      </PropertyGroup>
    </Project>
    

Název složky "pivot" se ve výchozím nastavení skládá z monikeru cílové platformy (TFM), konfigurace a identifikátoru runtime (RID). Všechny, které nejsou k dispozici, jsou vynechány. Chcete-li přizpůsobit název složky "pivot", nastavte ArtifactsPivots vlastnost MSBuild na požadovaný řetězec. Příklad:

<PropertyGroup>
  ...
  <ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>

Název složky "název projektu" je výchozí pro název projektu MSBuild. Chcete-li jej přizpůsobit pro konkrétní projekt, nastavte ArtifactsProjectName vlastnost MSBuild v souboru projektu. Příklad:

<PropertyGroup>
  <ArtifactsProjectName>CustomProjectName</ArtifactsProjectName>
</PropertyGroup>