Összetevők kimeneti elrendezése

A .NET 8 és újabb verzióiban lehetőség van a kimeneti útvonal és a mappaszerkezet egyszerűsítésére a buildkimenetek esetében. Az összes projekt összes buildkimenete egy közös helyre kerül, projekt szerint elválasztva. A gyakori helyek megkönnyítik az eszközök számára a kimenetek megtalálásának előrejelzését.

Alapértelmezés szerint a gyakori hely egy artifacts nevű könyvtár a Directory.build.props fájl mellett. A gyökérösszetevők mappa alatti mappaszerkezet a következő:

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

Az alábbi táblázat a mappastruktúra egyes szintjeihez tartozó alapértelmezett értékeket mutatja be. Felülbírálhatja az értékeket és az alapértelmezett helyet a Directory.build.props fájl tulajdonságaival.

Mappaszint Leírás Példák
Kimenet típusa A buildkimenetek kategóriái, például bináris fájlok, köztes/generált fájlok, közzétett alkalmazások és NuGet-csomagok. bin, obj, publishpackage
Projektnév† A kimenetet az egyes projektek szerint választja el. Alapértelmezett beállításként az MSBuild projektnév jelenik meg. Az MSBuild tulajdonság használatával ArtifactsProjectName. MyApp
Kimutatás† Különbséget tesz a különböző konfigurációkhoz, cél-keretrendszerekhez és futtatókörnyezet-azonosítókhoz készült projekt buildjei között. Ha több elemre van szükség, alulvonással (_) kapcsolódnak össze. Az MSBuild tulajdonság használatával ArtifactsPivots. debug, debug_net8.0, releaserelease_linux-x64

† A csomag kimeneti elérési útjainál a projektnév almappája nincs megadva. Emellett a pivot almappája csak a konfigurációt tartalmazza.

Példák

Az alábbi táblázat példákat mutat be a létrehozható útvonalakra.

Elérési útvonal Leírás
artifacts\bin\MyApp\debug Egyszerű projekt buildelési kimeneti útvonala futtatáskor dotnet build.
artifacts\obj\MyApp\debug Egy egyszerű projekt köztes kimeneti elérési útja futtatáskor dotnet build.
artifacts\bin\MyApp\debug_net8.0 A többcélos projekt net8.0 build kimeneti útvonala.
artifacts\publish\MyApp\release_linux-x64 Az egyszerű alkalmazás közzétételi elérési útja, amikor a(z) linux-x64 célra történik a közzététel.
artifacts\package\release Az a mappa, amelyben a kiadás .nupkg létrehozása egy projekthez történik.

Konfigurálás

A központi kimeneti elérési út formátumának használatához adja hozzá az alábbi MSBuild-tulajdonságok egyikét a Directory.Build.props fájlhoz:

  • Az alapértelmezett kimeneti hely használatához állítsa a UseArtifactsOutput tulajdonságot a következőre true.

    <PropertyGroup>
      <UseArtifactsOutput>true</UseArtifactsOutput>
    </PropertyGroup>
    
  • Egyéni kimeneti hely beállításához adjon hozzá egy ArtifactsPath olyan tulajdonságot, amelynek értéke $(MSBuildThisFileDirectory)artifacts (vagy bármi legyen is a mappa helye). Ha még nem rendelkezik Directory.Build.props fájllal, a következő parancs futtatásával automatikusan létrehozhat egy olyan fájlt, amely tartalmazza a tulajdonságot ArtifactsPath :

    dotnet new buildprops --use-artifacts
    

    A létrehozott fájl a következőhöz hasonlóan néz ki:

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

A "pivot" mappanév alapértelmezés szerint a célkeretrendszer megnevezésének (TFM), a konfigurációnak és a futtatási környezet azonosítójának (RID) kombinációja. A nem jelen lévő elemeket a rendszer kihagyja. A "pivot" mappa elnevezésének testreszabásához állítsa az ArtifactsPivots MSBuild tulajdonságot a kívánt karakterláncra. Példa:

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

A "projektnév" mappanév alapértelmezés szerint az MSBuild projektnév. Ha testre szeretné szabni egy adott projekthez, állítsa be az ArtifactsProjectName MSBuild tulajdonságot a projektfájlban. Példa:

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