如何使用MSDeploy通过http同步整个解决方案?

时间:2011-09-08 15:29:26

标签: msbuild msdeploy

我可以使用Visual Studio 2010 SP1“发布”向导一次使用MSDeploy部署一个项目。我部署在http。

我的visual studio解决方案包含许多项目,有些依赖于共享DLL。是否可以同步整个解决方案?

我的目标是完全自动化部署。

卡尔

1 个答案:

答案 0 :(得分:1)

为什么不直接从命令行使用WDeploy?您可以指定清单文件,在其中放置所有必要的部件以进行部署,然后针对清单msdeploy提供程序进行同步:


Source manifest (Source.xml)
<MyDeployment>
        <appHostConfig path="MyLocalSiteName" />
<!-- 
     You can also use iisApp depending on what permissions you have on the remote server.
     If you have permissions execute appHostConfig that will create a site if the site does not exist.
 -->
        <iisApp path="MyLocalSiteName\MyApp" />

        <dirPath path="C:\Solution\Project1" />
        <dirPath path="C:\Solution\Project2" />
        <gacAssembly path="My.GACed.Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111'" />
</MyDeployment>


Destination manifest (Destination.xml)
<MyDeployment>
        <appHostConfig path="MyRemoteSiteName" />
        <iisApp path="MyRemoteSiteName\MyApp" />

        <dirPath path="\\RemoteServerShare\Solution\Project1" />
        <dirPath path="\\RemoteServerShare\Solution\Project2" />
        <gacAssembly path="My.GACed.Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111'" />
</MyDeployment>

命令行将是:

msdeploy.exe -verb:sync -source:manifest=Source.xml -dest:manifest=Destination.xml,computername=MyServer

...反对MSDeploy代理,或

msdeploy.exe -verb:sync -source:manifest=Source.xml -dest:manifest=Destination.xml,wmsvc=MyServer,username=User2,password=4321,authtype=basic

...反对WMSvc。

This blog post可以帮助您开始使用清单提供程序,this TechNet article可以解释一些有用的提供程序设置。