Я в настоящее время выполняю Системный RC Команды Visual Studio 2010, и я пытаюсь получить Сервисные настройки Сборки, чтобы создать мое решение и развернуть 3 веб-приложения в нем. Я создал сделанную на заказ конфигурацию под названием Интеграция, и я имею, устанавливают "веб-сайт IIS / имя приложения для использования на целевом сервере" на вкладке Package/Publish Свойств для каждого из веб-приложений.
В моем Определении Сборки я установил следующие аргументы:
/p:DeployOnBuild=True/p:DeployTarget=MSDeployPublish/p:MSDeployPublishMethod=InProc/p:MsDeployServiceUrl=http://my-server-name:8172/msdeploy.axd/p:EnablePackageProcessLoggingAndAssert=True
Однако, когда я выполняю сборку, я получаю следующую ошибку для всех трех веб-приложений:
Обновление setAcl (MyProjectName).
C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3481, 5): ошибка: Веб-задача развертывания перестала работать. (Предпринятый для выполнения несанкционированной операции.)
Я не думаю, что это - моя фактическая проблема все же. Эта ошибка происходит после следующей записи в журнале: Обновление setAcl Это - то, что вызывает сообщение об ошибке, но кажется, что MSDeploy пытается развернуться к локальному IIS на сервере Сборки, не сервере, который я указал с параметром MsDeployServiceUrl.
После рассмотрения целевого файла в C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets я добавил EnablePackageProcessLoggingAndAssert, который добавляет дополнительный вход. Журнал показывает строку emptry для значения MsDeployServiceUrl. Я также заметил в цели, что MsDeployServiceUrl имеет нижний регистр s, который несколько сбивает с толку, потому что имя задачи MSDeployPublish имеет верхний регистр S. Я пытался использовать его с помощью верхнего регистра, с другой стороны с помощью нижнего регистра, но ни один не работал.
Пара других вещей отметить:
Кто-либо знает, предоставляю ли я корректные параметры? Или предоставьте мне корректные?
Спасибо
После многих раундов изменения параметров я смог найти решение и успешно развернуть сборку. В итоге я использовал следующие параметры:
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MSDeployPublishMethod=**RemoteAgent**
/p:MsDeployServiceUrl=http://my-server-name
/p:username=myusername
/p:password=mypassword
Похоже, что при использовании InProc
для MSDeployPublishMethod
MSBuild игнорирует MsDeployServiceUrl и всегда пытается развернуть на локальный сервер. Я изменил его на RemoteAgent
, и он успешно развернулся. Я заметил, что файл пакета больше не содержится в папке MyWebApplication_Package , но для меня это не имеет большого значения.
Учитывая, что vs2010 является RTM-версией, вы можете просто выполнить обновление и посмотреть, исчезнет ли проблема.
Какой файл вы указали для сборки, которую запускает Team Build? Если это был файл решения, то простая передача в него этих свойств не означает, что они затем распространяются на каждый файл проекта при сборке. Когда вы создаете файлы решения, в создаваемые проекты передается только ограниченный набор свойств. В этом случае вы должны создать файл .proj, который по существу заменит ваш файл решения и передаст эти свойства.
Я недавно писал в блоге , как заменить файл решения файлом MSBuild .
Сообщите мне, если это к вам не относится или вам не поможет.
К вашему сведению, вас также может заинтересовать эта другая ветка MSDeploy, но это не та проблема, с которой вы столкнулись здесь. Как заставить TFS2010 запускать MSDEPLOY для меня через MSBUILD? .