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

时间:2010-04-15 17:38:58

标签: msbuild msdeploy visual-studio-2010-rc

我目前正在运行Visual Studio Team System 2010 RC,我正在尝试使用Build Service设置来构建我的解决方案并在其中部署3个Web应用程序。我已经创建了一个名为Integration的自定义构建配置,并且我在每个Web应用程序的Properties的Package / Publish选项卡上设置了“要在目标服务器上使用的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. 我的构建服务正在运行 网络服务。
  2. 服务器我 试图部署到另一个 域。
  3. 我也尝试过添加 / P:用户名= MYDOMAIN \名为myUsername / p:密码= mypassword到MSBuild参数列表,但没有帮助。
  4. 有人知道我是否提供正确的参数?或者给我正确的?

    由于

3 个答案:

答案 0 :(得分: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 文件夹中,但这对我来说不是什么大问题。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

我最近在博客上发表了关于how to Replace your solution file with an MSBuild file的信息。

如果这不适用于您或对您没有帮助,请告诉我。

仅供参考,您可能也对MSDeploy上的其他线程感兴趣,但这与您在此处遇到的问题不同。 How can I get TFS2010 to run MSDEPLOY for me through MSBUILD?