Сборка VSTS закончилась пустыми артефактами сборки

Мы используем сборку VSTS с использованием шаблона ASP.Net. Мы передаем аргументы MSBuild, как показано ниже:

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

Мы не видим ошибки сборки. Из журнала мы наблюдаем строку -

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_compiler.exe -v / LRM -p.. \ LRM \ -u -f -d Предварительно скомпилированный Web\LRM\

где LRM - это имя.NET sln, которое мы создаем. Этот sln содержит несколько проектов вместе с веб-сайтом LRM.

В конце конвейера сборки мы не видим сгенерированный артефакт. Мы видим предупреждение в "Опубликовать артефакты сборки":

2018-01-03T06:07:47.9208838Z ##[предупреждение] Каталог 'D:\VSTS Agents\DEV-QAS\A1\66\a' пуст. Ничего не будет добавлено для создания артефакта "drop".

3 ответа

Используйте ниже в качестве аргументов msbuild (/p:OutDir="$(build.stagingDirectory)"это разница)

/p:TransformConfigFiles=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:OutDir="$(build.stagingDirectory)"

Используйте Путь к задаче публикации, чтобы опубликовать как "$(build.stagingDirectory)\_ Опубликованные сайты", если вы хотите, чтобы выходные данные только сайта Если все файлы в промежуточном каталоге необходимы, используйте "$ (build.stagingDirectory)" в качестве пути для публикации.

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

/p:SkipInvalidConfigurations=true /p:DeployTarget=Package /p:PackageTempRootDir="$(Build.ArtifactStagingDirectory)"

Аргументы MSBuild веб-API ASP.Net: /p:OutDir=$(Build.ArtifactStagingDirectory) / p:SkipInvalidConfigurations= true

Публикация артефактов сборки: путь к публикации: $ (Build.ArtifactStagingDirectory)_PublishedWebsites

Вышеупомянутая конфигурация работает для меня, пожалуйста, проверьте изображение для подробностей.

Это веб-сайт, поэтому вы не можете опубликовать его как веб-приложение.

Во-первых, поскольку ChamindaC сказал, что вы можете указать аргумент OutDir, но он не будет генерировать пакет для веб-развертывания, вы можете заархивировать папку для архивации через задачу Archive. (Примечание: значение должно быть /p:OutDir="$(build.stagingDirectory)\\")

Во-вторых, он может сгенерировать файл publishproj после создания профиля публикации (щелкните правой кнопкой мыши веб-сайт> Publish Web App). Таким образом, вы можете указать этот файл в задаче Visual Studio Build или MSBuild с помощью аргументов MSBuild для публикации веб-сайта в пакете веб-развертывания.

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