У меня есть сайт и профиль публикации в TFS. Один из всех файлов находится на сервере сборки, я выполняю команду ниже:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSbuild.exe/p:Configuration=Release/p:Platform=AnyCPU/p:DeployOnBuild=true/p:PublishProfile=my_publish_profile.pubxml/fl/flp:logfile=BuildOutput.log;verbosity=detailed "%WORKSPACE%\my_project.csproj"
Но msbuild.exe не использует конфигурацию, указанную в этом файле. Интересно, нужно ли мне передавать дополнительные аргументы.
Это сработало для меня:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe "D:\Jenkins\1.03 MckinseyBranch1 Минимальное развертывание_Webdeploy\workspace\Mckinsey.sln"/tv:4.0/p: Configuration = Release; DeployOnBuild = true; PublishProfile = test.pubxml; VisualStudioVersion = 12,0
Я заметил, что настройки в файле "PublishProfile" выполняются только при использовании VisualStudioVersion = 12.0. Он не работает для других значений VisualStudioVersion = 12.0. Если используется VisualStudioVersion = 10.0, файлы публикуются в '(корень WebSite)\obj\Release\Package'
Чтобы использовать VisualStudioVersion = 12.0, вы должны иметь файл "Microsoft.WebApplication.targets" по пути "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications"
Попробуйте поместить полный путь в файл pubxml.