Как настроить MSBuild для использования сохраненного файла publishProfile для WebDeploy? - PullRequest
32 голосов
/ 03 февраля 2011

Я использовал Visual Studio для создания профиля публикации. Он сохранил эту информацию в MyProject.Publish.xml, расположенном в корневом каталоге моего проекта.

Я бы хотел, чтобы задача MSBuild, выполняемая на моем CI-сервере, использовала этот файл в качестве базовых настроек. В идеале, если бы я мог переопределить свойства через параметры командной строки, это было бы здорово.

Возможно ли это? Если да, то каков синтаксис?

Например, я ищу что-то вроде:

MSBuild MyProject.csproj /P:UsePublishProfile=True /P:UserName=deployUser /P:Password=MyPassword

1 Ответ

43 голосов
/ 29 декабря 2011

Извините, что сообщаю, что файл publish.xml, который использует VS2010, не предназначен для такого использования. На самом деле он даже не был предназначен для регистрации / передачи другим лицам.

Логика чтения / записи этих файлов строго содержится в Visual Studio и недоступна через MSBuild. Таким образом, сегодня не существует прямого способа сделать это. Вы должны передать имена / значения отдельных свойств при вызове msbuild.exe. Вы можете увидеть похожий вопрос, на который я ответил на Team Build: Публикуйте локально, используя MSDeploy для получения дополнительной информации.

Примечание для VS 11 Developer Preview

Точно так же вы знаете, что мы рассмотрели это в следующей версии Visual Studio. Вы можете увидеть, загрузив предварительный просмотр разработчика VS 11. Теперь все профили сохраняются в свои собственные файлы (в разделе PublishProfiles в узле «Свойства» в обозревателе решений). Теперь они предназначены для регистрации и передачи членам команды. Эти файлы теперь являются файлами MSBuild, и вы можете настроить их, если хотите. Для публикации из командной строки просто передайте DeployOnBuild = true и задайте для PublishProfile имя профиля. Например:

msbuild.exe MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile
...