TFS 2015 — этап сборки Visual Studio — управляйте именем папки места публикации

Я пытаюсь настроить сборку на локальном Team Foundation Server 2015 с использованием преобразований web.config. Преобразования работают нормально в зависимости от выбранной конфигурации сборки. У меня есть 3 конфигурации сборки: Debug, Release и одна, которую я создал, называется «Staging». Я пытаюсь сделать так, чтобы я мог повторно использовать одну и ту же сборку для разных сред, установив переменную $(BuildConfiguration) во время очереди. В моей сборке TFS на этапе «Сборка Visual Studio», когда я устанавливаю $(BuildConfiguration) на «отладку», сборка выводится в папку агента следующим образом: $(Build.SourcesDirectory)\projectFolder\obj\Debug\Package\PackageTmp . Если я установлю его на «выпуск», то он перейдет в $(Build.SourcesDirectory)\projectFolder\obj\Release\Package\PackageTmp. В обоих случаях файл Web.config преобразуется корректно.

Однако, если я установлю конфигурацию сборки на «Staging», файлы все равно будут помещены в папку «debug» $(Build.SourcesDirectory)\projectFolder\obj\Debug\Package\PackageTmp вместо папки «Staging». (Преобразования в этом случае также работают нормально и используют промежуточные значения)

Это создает проблему на моем шаге «Копировать файлы». У меня есть значение «Исходная папка» на этом шаге: $(Build.SourcesDirectory)\projectFolder\obj\ $(BuildConfiguration) \Package\PackageTmp, но при использовании «Staging» он не может найти исходную папку, поскольку TFS помещает файлы сборки в папку «Отладка».

Есть ли способ заставить TFS поместить созданные элементы (в основном файлы моего веб-приложения) в папку, соответствующую параметру конфигурации сборки, в данном случае «Staging»?


person cheluto2    schedule 10.10.2017    source источник


Ответы (1)


Примечание. Лучше не использовать преобразования web.config, а создать один раз и разрешить преобразование вашего web.config во время развертывания (либо путем добавления соответствующих значений, либо с помощью параметров MSDeploy).

Тем не менее, вы можете управлять выходной папкой с помощью аргумента /p:OutDir= MSBuild.

Однако я подозреваю, что вам просто нужно открыть настройки вашего проекта в Visual Studio, перейти на вкладку Build и установить там выходную папку с соответствующим именем.

person Daniel Mann    schedule 10.10.2017
comment
Почему лучше не использовать преобразования? Кажется, они отлично работают и их очень легко реализовать для моей цели. Пробовал аргументы OutDir или OutputPath, но они у меня не сработали. Это создается на сервере TFS, и я хочу, чтобы выходное местоположение было установлено на основе конфигурации сборки, поэтому я не знаю, как поможет вкладка «Сборка» в VS? - person cheluto2; 10.10.2017