Układ danych wyjściowych artefaktów

W programie .NET 8 i nowszych wersjach istnieje możliwość uproszczenia struktury ścieżki wyjściowej i folderu dla danych wyjściowych kompilacji. Wszystkie dane wyjściowe kompilacji ze wszystkich projektów są zbierane w wspólnej lokalizacji rozdzielonej projektem. Wspólna lokalizacja ułatwia narzędziom przewidywanie, gdzie można znaleźć dane wyjściowe.

Domyślnie wspólną lokalizacją jest katalog o nazwie artifacts obok pliku Directory.build.props . Struktura folderów w folderze artefaktów głównych jest następująca:

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

W poniższej tabeli przedstawiono wartości domyślne dla każdego poziomu w strukturze folderów. Możesz zastąpić wartości, a także lokalizację domyślną, używając właściwości w pliku Directory.build.props .

Poziom folderu opis Przykłady
Typ danych wyjściowych Kategorie danych wyjściowych kompilacji, takie jak pliki binarne, pliki pośrednie/wygenerowane, opublikowane aplikacje i pakiety NuGet. bin, , obj, , publishpackage
Nazwa projektu Oddziela dane wyjściowe według każdego projektu. MyApp
Pivot Rozróżnia między kompilacjami projektu dla różnych konfiguracji, platform docelowych i identyfikatorów środowiska uruchomieniowego. Jeśli jest potrzebnych wiele elementów, są one przyłączone przez podkreślenie (_). Można dostosować przy użyciu ArtifactsPivots właściwości MSBuild. debug, , debug_net8.0, , releaserelease_linux-x64

Przykłady

W poniższej tabeli przedstawiono przykłady ścieżek, które można utworzyć.

Ścieżka opis
artifacts\bin\MyApp\debug Ścieżka wyjściowa kompilacji dla prostego projektu po uruchomieniu dotnet buildpolecenia .
artifacts\obj\MyApp\debug Ścieżka danych wyjściowych pośrednich dla prostego projektu po uruchomieniu polecenia dotnet build.
artifacts\bin\MyApp\debug_net8.0 Ścieżka danych wyjściowych kompilacji dla net8.0 kompilacji wielokierunkowego projektu.
artifacts\publish\MyApp\release_linux-x64 Ścieżka publikowania dla prostej aplikacji podczas publikowania dla programu linux-x64.
artifacts\package\MyApp\release Folder, w którym jest tworzony plik nupkg wydania dla projektu.

Sposób konfigurowania

Aby wybrać scentralizowany format ścieżki wyjściowej, dodaj jedną z następujących właściwości programu MSBuild do pliku Directory.Build.props :

  • Aby użyć domyślnej lokalizacji wyjściowej, ustaw UseArtifactsOutput właściwość na true.

    <PropertyGroup>
      <UseArtifactsOutput>true</UseArtifactsOutput>
    </PropertyGroup>
    
  • Aby ustawić niestandardową lokalizację wyjściową, dodaj ArtifactsPath właściwość z wartością $(MSBuildThisFileDirectory)artifacts (lub dowolną lokalizacją folderu). Jeśli nie masz jeszcze pliku Directory.Build.props , możesz uruchomić następujące polecenie, aby automatycznie wygenerować plik zawierający ArtifactsPath właściwość :

    dotnet new buildprops --use-artifacts
    

    Wygenerowany plik wygląda podobnie do następującego:

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

Nazwa folderu "pivot" jest domyślnie ustawiona na kombinację nazwy docelowej platformy (TFM), konfiguracji i identyfikatora środowiska uruchomieniowego (RID). Wszystkie, które nie są obecne, zostaną pominięte. Aby dostosować sposób nazwania folderu "pivot", ustaw ArtifactsPivots właściwość MSBuild na żądany ciąg. Na przykład:

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