У меня странная проблема: когда я создаю сборку с помощью «Visual Studio Build» и предоставляю файл *.sln, он делает вид, что собирает все проекты (я вижу это в журнале), но когда дело доходит до публикации артефактов, есть только несколько проектов из решения (в основном тестовые проекты и некоторые разные проекты, но не основные). У меня есть отсортированные зависимости, так как эта сборка отлично работает в VS2015 (в настоящее время я использую WebDeploy). Кто-нибудь видел такое поведение?
Создание проекта в VSTS не создает все проекты в решении
Ответы (2)
Поскольку вы упомянули «WebDeploy», я подозреваю, что вы создаете проект веб-приложения с некоторыми другими проектами в решении. Поведение, которое вы видите, обычно вызвано шаблоном определения сборки Visual Studio по умолчанию. При настройках по умолчанию этого шаблона задача «Копировать файлы» копирует файлы из папки «**\bin\$(BuildConfiguration)**» в папку «$(build.artifactstagingdirectory)», а затем публикует файлы в «$ (build.artifactstagingdirectory)". Но это не применимо к проекту веб-приложения.
Чтобы устранить эту проблему, добавьте следующие аргументы в раздел «Аргументы MSBuild» задачи «Сборка Visual Studio»:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
Затем вы получите пакет развертывания в артефактах, и вы сможете развернуть его через веб-развертывание.
У меня тоже была такая проблема (или похожая?) Артефакты для основного проекта не публиковались, только тестовый проект.
При просмотре файла журнала я заметил две вещи.
Скопированы только файлы из тестового проекта
Задача «Копировать файлы в: $(build.artifactstagingdirectory)» искала содержимое с использованием подстановочного знака «\bin\release**», этот путь задается на шаге сборки «Копировать файлы» / «Содержимое» и «\bin\$(BuildConfiguration)**» по умолчанию, что соответствует вашей настройке в «Переменных» / «BuildConfiguration» в этом определении сборки.
Затем я просмотрел настройки проекта в Visual Studio, и по какой-то причине в основном проекте для параметра «Путь сборки / вывода / вывода» было установлено значение «bin \»; изменение этого на «bin\Release» для выпуска и «bin\Debug» для отладки решило мою проблему.
Решение?
а. Установите для параметра проекта VS "Путь сборки/вывода/вывода" значение "bin\Release"
б. (или измените шаг сборки VSTS «Копировать файлы» / «Контент» на «\bin», чтобы поймать все в корзине)