MSBuild аргументы для генерации файлов

Примечания: Решение Visual Studio 2017 с веб-приложением MVC и несколькими другими проектами, на которые не все ссылаются в проекте веб-приложения. До сих пор я использовал VS напрямую для публикации на тестовом сервере, но я переместил вещи в VSTS и настроил определение сборки и выпуска, но пока не работает.

Я пытаюсь добиться того, чтобы мой (размещенный) агент сборки VSTS создавал опубликованные файлы, которые мой (предварительно) агент выпуска может просто скопировать в целевое место назначения. Итак, я пытаюсь проверить шаг сборки MS локально из командной строки VS, чтобы получить созданные файлы и отметить путь, по которому они находятся. Может быть, я делаю это более сложным, чем должно быть?

Эти параметры создадут один архивный архив и связанные с ним файлы и поместят его в каталог промежуточного хранения артефакта. Есть ли способ просто опубликовать файлы БЕЗ размещения их в архиве - и прямо в директорию постановки артефакта?

Visual Studio Build

Параметры MSBuild

/t:My_MVCWeb_Project_Name /p:DeployOnBuild=true 
/p:WebPublishMethod=FileSystem /p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.artifactstagingdirectory)\\"

В моем выпуске, использующем предварительный агент), у меня есть задача "копировать файлы" с местом назначения в качестве пути unc, где находится приложение IIS. Однако, это просто скопирует архив. Итак, как я могу просто скопировать файлы, как если бы я использовал профиль публикации, прямо в каталог приложения?

[update2 - по-прежнему создается zip-файл]

MSBuild my_solution_name /t:"my_project_name" /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /p:PackageLocation="D:\temp\local-dev-build-dir"

[обновление 3 ] Попытка их из командной строки в качестве теста, но ничего не генерируется

msbuild D:\app_dir>MSBuild my_solution_name.sln /t:"my_web_proj_name" /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="D:\temp\app_build_dir\\" 
/p:DeployDefaultTarget=WebPublish  

2 ответа

Удалить

/p:PackageAsSingleFile=true 

Или измените его на:

/p:PackageAsSingleFile=false 

Это вызывает архивирование файлов.

Вам также может понадобиться переключить метод публикации на пакет:

/p:OutDir=$(build.artifactstagingdirectory) 
/p:WebPublishMethod=Package

Вместо этого используйте следующие аргументы MSBuild:

/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\" /p:DeployDefaultTarget=WebPublish

Кто-нибудь знает, где все эти параметры задокументированы? Like /p: НЕКОТОРЫЕ-НАЗВАНИЕ-ПАРАМЕТРА

Я нигде не нашел, просто ответы на форумах от людей, которые говорят, что писать, но не почему. Было бы неплохо с полным списком возможных параметров.

/p:PrecompileBeforePublish
/p:DeployOnBuild
/p:WebPublishMethod
/p:PackageAsSingleFile
/p:SkipInvalidConfigurations
/p:PackageLocation
/p:DeployDefaultTarget

так далее...

Другие вопросы по тегам