Share via


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, , publishpackage
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, , releaserelease_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 det centraliserade utdatasökvägsformatet 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 till true.

    <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åller ArtifactsPath 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>