MSDeploy不使用MSBuild和Visual Studio 2010部署到远程服务器

Cha*_*eck 17 msbuild msdeploy visual-studio-2010-rc

我目前正在运行Visual Studio Team System 2010 RC,我正在尝试使用Build Service设置来构建我的解决方案并在其中部署3个Web应用程序.我已经创建了一个名为Integration的自定义构建配置,并且我在每个Web应用程序的"属性"的"包/发布"选项卡上设置了"在目标服务器上使用的IIS网站/应用程序名称".

在我的构建定义中,我设置了以下参数:

/ p:DeployOnBuild = True/p:DeployTarget = MSDeployPublish/p:MSDeployPublishMethod = InProc/p:MsDeployServiceUrl = http:// my-server-name:8172/msdeploy.axd/p:EnablePackageProcessLoggingAndAssert = True

但是,当我运行构建时,我得到以下错误,对于所有三个Web应用程序:

更新setAcl(MyProjectName).

C:\ Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3481,5):错误:Web部署任务失败.(试图执行未经授权的操作.)

我不认为这是我的实际问题.在日志中的以下条目之后发生此错误:更新setAcl这是导致错误消息的原因,但似乎MSDeploy正在尝试部署到构建服务器上的本地IIS,而不是我使用MsDeployServiceUrl参数指定的服务器.

在C:\ Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets中查看目标文件后,我添加了EnablePackageProcessLoggingAndAssert,它添加了额外的日志记录.该日志显示MsDeployServiceUrl值的emptry字符串.我还注意到在目标中MsDeployServiceUrl有一个小写的s,这有点令人困惑,因为任务名称MSDeployPublish有一个大写的S.我尝试使用大写,然后再次使用小写,但都没有工作.

还有几点需要注意:

  1. 我的构建服务作为NETWORK SERVICE运行.
  2. 我正在尝试部署的服务器在另一个域上.
  3. 我还尝试将/ p:username = mydomain\myusername/p:password = mypassword添加到MSBuild参数列表中,但这没有帮助.

有谁知道我是否提供正确的参数?还是给我提供正确的?

谢谢

Cha*_*eck 26

经过多轮更改参数后,我能够找到解决方案并使构建成功部署.我最终使用的参数是:

/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish 
/p:MSDeployPublishMethod=**RemoteAgent** 
/p:MsDeployServiceUrl=http://my-server-name
/p:username=myusername 
/p:password=mypassword
Run Code Online (Sandbox Code Playgroud)

InProc用于MSDeployPublishMethod MSBuild时,似乎忽略MsDeployServiceUrl并始终尝试部署到本地服务器.我将其更改为RemoteAgent并成功部署.我注意到包文件不再包含在MyWebApplication_Package文件夹中,但这对我来说不是什么大问题.

  • 你有参考资料吗?这方面的文档非常稀少. (2认同)