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í odděleného projektem. 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ů. 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

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 při spuštění dotnet build.
artifacts\obj\MyApp\debug Zprostředkující vý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\MyApp\release Složka, ve které se vytvoří verze .nupkg pro projekt.

Způsob konfigurace

Pokud chcete vyjádřit výslovný souhlas s centralizovaným formátem výstupní cesty, přidejte do souboru Directory.Build.props jednu z následujících vlastností NÁSTROJE 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" je výchozí kombinací monikeru cílové architektury (TFM), konfigurace a identifikátoru modulu 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>