Подтвердить что ты не робот

Team Build: публиковать локально с помощью MSDeploy

Я только начинаю с функциональности сборки команды, и я нахожу огромное количество вещей, необходимых для того, чтобы сделать что-то довольно простое подавляющее. Моя настройка на данный момент - это решение с помощью веб-приложения, приложения для сборки и тестового приложения. Веб-приложение имеет установленный PublishProfile, который публикуется через файловую систему.

У меня есть настройка определения сборки TFS, которая в настоящее время строит все решение в ночное время и переносит его на сетевой ресурс в качестве резервной копии старых сборников. Все, что я хочу сделать сейчас, это опубликовать файл PublishProfile, который я уже установил, чтобы опубликовать веб-приложение для меня. Я уверен, что это действительно просто, но я играл с командами MSBuild на целый день без везения. Помогите!

4b9b3361

Ответ 1

К сожалению, совместное использование профиля публикации не поддерживается или не поддерживается в MSBuild. Логика публикации из профиля содержится в самом VS. К счастью, профиль не содержит много информации, поэтому есть способы добиться того, что вы ищете. Наши цели не поддерживают точно такие же шаги, как и в диалоговом окне публикации, но для достижения такого же результата из командной сборки у вас есть два варианта, я опишу и то, и другое здесь.

Когда вы настраиваете определение Team Build для развертывания, вам необходимо передать некоторые значения для аргументов MSBuild для процесса сборки. См. Изображение ниже, где я выделил это. alt text

Вариант 1: Перейдите в следующие аргументы:

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

Позвольте мне немного объяснить эти параметры, покажите вам результат, затем объясните следующий вариант. DeployOnBuild=true: Это сообщает проекту, чтобы выполнить цель (ы), определенную в свойстве DeployTarget.

DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder: Указывает цель DeployTarget.

PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish": Указывает место, где будут записываться файлы пакета. Это место, где файлы записываются до их упаковки.

AutoParameterizationWebConfigConnectionStrings=false: Это указывает, что веб-публикация (WPP) не параметризует строки подключения в файле web.config. Если вы не укажете это, ваши значения строки соединения будут заменены заполнителями, такими как $(ReplacableToken_dummyConStr-Web.config Connection String_0)

После этого вы можете начать сборку, а затем внутри места PackageTempRootDir вы найдете папку PackageTmp, и она содержит контент, который вы ищете.

Вариант 2: Поэтому для предыдущего варианта вы, вероятно, заметили, что он создает папку с именем PackageTmp, и если вы этого не хотите, вы можете использовать следующие параметры.

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

Разница здесь в том, что вместо PackageTempRootDir вы переходите в _PackageTempDir. Причина, по которой я не предполагаю, что начать с того, что свойства MSBuild, начинающиеся с _, означают, что свойство по существу "внутренне" в том смысле, что в будущей версии это может означать что-то другое или вообще не существует. Поэтому используйте свой риск.

Вариант 3

Со всем сказанным вы можете просто использовать сборку для упаковки своего веб-сайта. Если вы хотите это сделать, используйте следующие аргументы.

/p:DeployOnBuild=true;DeployTarget=Package

Когда вы сделаете это в папке с пересылкой для своей сборки, вы найдете папку _PublishedWebsites, как обычно, а внутри этого будет папка {ProjectName} _Package, где {ProjectName} - это имя проекта. Эта папка будет содержать пакет, файл .cmd, файл параметров и пару других. Вы можете использовать эти файлы для развертывания своего веб-сайта.

Я надеюсь, что это была не информация о загрузке.

Ответ 2

Возможность публиковать веб-сайты, настраивать IIS и изменять схемы транзакций для цикла DEV- > QA- > RELEASE требует либо настраиваемой конфигурации для имитации публикации или настраиваемого кода, в котором задействованы настройки IIS.

Начиная с Visual Studio 2013.2 Microsoft добавила сторонний продукт, который управляет развертыванием веб-сайтов, изменениями конфигурации и развертыванием базы данных с рабочим процессом Windows и будет рекомендуемым решением для автоматизации развертывания из сборки TFS.

Более подробную информацию можно найти здесь:

http://www.visualstudio.com/en-us/explore/release-management-vs.aspx