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 , , publish package |
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 , , release release_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 build polecenia . |
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 wyrazić zgodę na 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ść natrue
.<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ącyArtifactsPath
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>