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 , , publish package |
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 , , release release_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 natrue
hodnotu .<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>