Макет выходных данных артефактов
В .NET 8 и более поздних версиях существует возможность упростить выходной путь и структуру папок для выходных данных сборки. Все выходные данные сборки всех проектов собираются в общее расположение, разделенное проектом. Общее расположение упрощает инструментирование для прогнозирования того, где найти выходные данные.
По умолчанию общее расположение — это каталог с именем артефактов рядом с файлом Directory.build.props . Структура папок в папке корневых артефактов выглядит следующим образом:
📁 artifacts
└──📂 <Type of output>
└──📂 <Project name>
└──📂 <Pivot>
В следующей таблице показаны значения по умолчанию для каждого уровня в структуре папок. Можно переопределить значения, а также расположение по умолчанию, используя свойства в файле Directory.build.props .
Уровень папки | Description | Примеры |
---|---|---|
Тип выходных данных | Категории выходных данных сборки, такие как двоичные файлы, промежуточные или созданные файлы, опубликованные приложения и пакеты NuGet. | bin , , obj publish package |
Имя проекта | Разделяет выходные данные по каждому проекту. | MyApp |
Pivot | Различает сборки проекта для различных конфигураций, целевых платформ и идентификаторов среды выполнения. Если требуется несколько элементов, они объединяются символом подчеркивания (_ ). Можно настроить с помощью ArtifactsPivots свойства MSBuild. |
debug , , debug_net8.0 release release_linux-x64 |
Примеры
В следующей таблице показаны примеры путей, которые могут быть созданы.
Путь | Description |
---|---|
артефакты\bin\MyApp\debug | Выходной путь сборки для простого проекта при запуске dotnet build . |
артефакты\obj\MyApp\debug | Промежуточный выходной путь для простого проекта при запуске dotnet build . |
артефакты\bin\MyApp\debug_net8.0 | Выходной путь сборки для net8.0 сборки многоцелого проекта. |
артефакты\publish\MyApp\release_linux-x64 | Путь публикации для простого приложения при публикации linux-x64 . |
артефакты\package\MyApp\release | Папка, в которой создается выпуск NUPKG для проекта. |
Порядок настройки
Чтобы выбрать формат централизованного выходного пути, добавьте одно из следующих свойств MSBuild в файл Directory.Build.props :
Чтобы использовать расположение выходных данных по умолчанию, задайте
UseArtifactsOutput
для свойства значениеtrue
.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>
Чтобы задать пользовательское расположение выходных данных, добавьте
ArtifactsPath
свойство со значением$(MSBuildThisFileDirectory)artifacts
(или независимо от того, где должна быть папка). Если у вас еще нет файла Directory.Build.props , можно выполнить следующую команду, чтобы автоматически создать файл, содержащийArtifactsPath
свойство:dotnet new buildprops --use-artifacts
Созданный файл выглядит примерно так:
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
Имя папки "сводная" по умолчанию используется для сочетания моникера целевой платформы (TFM), конфигурации и идентификатора среды выполнения (RID). Все, которые отсутствуют, опущены. Чтобы настроить имя папки сводной таблицы, задайте ArtifactsPivots
для свойства MSBuild нужную строку. Например:
<PropertyGroup>
...
<ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>