Ответ 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