Как настроить MSBuild для использования сохраненного файла публикации для WebDeploy?

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

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

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

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

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

Ответ 1

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

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

Примечание для предварительного просмотра для VS 11

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

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