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

问题描述 投票:17回答:3

我目前正在运行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参数列表中,但这没有帮助。

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

谢谢

msbuild msdeploy visual-studio-2010-rc
3个回答
26
投票

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

/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文件夹中,但这对我来说不是什么大问题。


0
投票

考虑到vs2010是RTM,你可能会考虑升级并查看问题是否消失。


0
投票

对于Team Build正在运行的构建,您指定了哪个文件? 如果它是一个解决方案文件,那么只是将这些属性传递给它并不意味着它们在构建时会传播到每个项目文件。 构建解决方案文件时,只会将一组有限的属性传递给正在构建的项目。 如果是这种情况,您应该创建一个.proj文件,它将基本上替换您的解决方案文件并传入这些属性。

我最近在博客中介绍了如何用MSBuild文件替换您的解决方案文件

如果这不适用于您或对您没有帮助,请与我们联系。

仅供参考,您可能也对MSDeploy上的其他线程感兴趣,但这与您在此处遇到的问题不同。 如何让TFS2010通过MSBUILD为我运行MSDEPLOY?

© www.soinside.com 2019 - 2024. All rights reserved.