2017-01-12 2 views
2

Я пытаюсь создать сборку, которая будет строить мое решение, применять при необходимости преобразование web.config и, наконец, копировать желаемый результат (встроенный веб-проект api) в область артефактов сборки.Услуги команды Сборка артефактов

Я использую Развертывание ... Шаблон Azure WebApp с отключенной службой Azure App Service (поскольку мы находимся в середине перехода к Azure) со следующими аргументами построения на этапе сборки:

/р: DeployOnBuild = истина/р: WebPublishMethod = Упаковка/р: PackageAsSingleFile = истина/р: SkipInvalidConfigurations = истина/р: PackageLocation = "$ (build.artifactstagingdirectory) \"/р: AutoParameterizationWebConfigConnectionStrings = False

Все работает как ожидалось, кроме структуры полученного zip-файла, который имеет следующую структуру:

{ZipFileName} {ProjectName \ Content \ C_C \ a \ 1 \ s \ Api {ProjectName \ obj \ Release \ Package \ PackageTmp ... {BuildContent}

Я хочу, чтобы контент находился в корне если возможно, опубликованный zip-файл. Является лучшим способом манипулировать содержимым файла $ (build.artifactstagingdirectory) с помощью Powershell или ряда других встроенных задач сборки?

+0

«который для того, чтобы найти построенный проект:» Что вы имеете в виду под этим? –

+0

Да, это было плохо написано, отредактировано. –

+0

@MattRowett Вы решаете эту проблему? –

ответ

2

Вам не нужно беспокоиться об этом, потому что он не будет держать структуру папок (только файлы и папки в папку PackageTmp) после развертывания на веб-сервер (например, IIS, Azure Web App)

Если вам все еще нужно просто включить файлы в папку PackageTmp, вы можете добавить шаг сборки для архивирования файла в zip-файл через шаг Archive Files.

Для этапа Visual Studio Build укажите/p: DeployOnBuild = true для аргументов MSBuild.

enter image description here

+0

Где я могу увидеть полученный zip-файл? Я не ссылка Artifacts в сводке сборки. –

+0

Обнаружил это, мне нужно было поставить шаг архива перед шагом публикации артефакта. –

+0

Поскольку я только хочу, чтобы встроенный проект в файл артефакта загрузился, я просто изменил публикацию Artifact ... Path To Publish из $ (build.artifactstagingdirectory) в {Project} I \ obj \ Dev \ Package \ PackageTmp \. Это не было очевидно, пока ваш пост в папке \ obj не существует в исходном элементе управления и не может быть просмотрен с использованием эллипса UI. –

Смежные вопросы