Utdatalayout för artefakter
I .NET 8 och senare versioner finns det ett alternativ för att förenkla utdatasökvägen och mappstrukturen för byggutdata. Alla byggutdata från alla projekt samlas in på en gemensam plats, avgränsade med projekt. En gemensam plats gör det enkelt för verktyg att förutse var du hittar utdata.
Som standard är den gemensamma platsen en katalog med namnet artifacts bredvid filen Directory.build.props . Mappstrukturen under mappen rotartefakter är följande:
📁 artifacts
└──📂 <Type of output>
└──📂 <Project name>
└──📂 <Pivot>
I följande tabell visas standardvärdena för varje nivå i mappstrukturen. Du kan åsidosätta värdena, samt standardplatsen, med hjälp av egenskaper i filen Directory.build.props .
Mappnivå | beskrivning | Exempel |
---|---|---|
Typ av utdata | Kategorier av byggutdata, till exempel binärfiler, mellanliggande/genererade filer, publicerade program och NuGet-paket. | bin , obj , , publish package |
Projektnamn | Separerar utdata efter varje projekt. | MyApp |
Pivot | Skiljer mellan versioner av ett projekt för olika konfigurationer, målramverk och körningsidentifierare. Om flera element behövs kopplas de med ett understreck (_ ). Kan anpassas med hjälp av ArtifactsPivots egenskapen MSBuild. |
debug , debug_net8.0 , , release release_linux-x64 |
Exempel
I följande tabell visas exempel på sökvägar som kan skapas.
Sökväg | beskrivning |
---|---|
artifacts\bin\MyApp\debug | Skapa utdatasökvägen för ett enkelt projekt när du kör dotnet build . |
artifacts\obj\MyApp\debug | Den mellanliggande utdatasökvägen för ett enkelt projekt när du kör dotnet build . |
artifacts\bin\MyApp\debug_net8.0 | Skapa utdatasökvägen för bygget net8.0 av ett projekt med flera mål. |
artifacts\publish\MyApp\release_linux-x64 | Publiceringssökvägen för en enkel app när du publicerar för linux-x64 . |
artifacts\package\MyApp\release | Mappen där versionen .nupkg skapas för ett projekt. |
Konfigurera
Om du vill välja formatet för centraliserad utdatasökväg lägger du till någon av följande MSBuild-egenskaper i filen Directory.Build.props :
Om du vill använda standardplatsen för utdata anger du
UseArtifactsOutput
egenskapen tilltrue
.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>
Om du vill ange en anpassad utdataplats lägger du till en
ArtifactsPath
egenskap med värdet$(MSBuildThisFileDirectory)artifacts
(eller vad du vill att mappplatsen ska vara). Om du inte redan har en Directory.Build.props-fil kan du köra följande kommando för att automatiskt generera en fil som innehållerArtifactsPath
egenskapen:dotnet new buildprops --use-artifacts
Den genererade filen ser ut ungefär så här:
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
Mappnamnet "pivot" är som standard en kombination av målramverksmoniker (TFM), konfiguration och körningsidentifierare (RID). Alla som inte finns utelämnas. Om du vill anpassa hur pivotmappen heter anger du ArtifactsPivots
egenskapen MSBuild till önskad sträng. Till exempel:
<PropertyGroup>
...
<ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>