Asp.net 如何使用VS2010一键发布(MsDeploy)从命令行进行远程部署?

Asp.net 如何使用VS2010一键发布(MsDeploy)从命令行进行远程部署?,asp.net,command-line,publish,oneclick,msdeployserviceagent,Asp.net,Command Line,Publish,Oneclick,Msdeployserviceagent,在远程web服务器上,我安装了远程服务 如果我在VS2010中使用Web应用程序项目的Publish命令,我可以成功发布到此远程Web服务器并更新特定的IIS网站 我现在要做的是从命令行执行这个功能 我猜这是两步。首先使用相关的生成配置生成web应用程序项目: msbuild "C:\MyApplication\MyWebApplication.csproj" /T:Package /P:Configuration=Release 然后发出MsDeploy

在远程web服务器上,我安装了远程服务

如果我在VS2010中使用Web应用程序项目的Publish命令,我可以成功发布到此远程Web服务器并更新特定的IIS网站

我现在要做的是从命令行执行这个功能

我猜这是两步。首先使用相关的生成配置生成web应用程序项目:

msbuild "C:\MyApplication\MyWebApplication.csproj" 
        /T:Package /P:Configuration=Release
然后发出MsDeploy命令,使其与remove IIS服务器发布/同步:

msdeploy -verb:sync  
         -source:package="C:\MyApplication\obj\Release\Package\MyWebApplication.zip" 
         -dest:contentPath="My Production Website",
          computerName=http://x.x.x.x/MsDeployAgentService,
          username=adminuser,password=adminpassword
不幸的是,我发现了一个错误:

错误:(10/05/2010 3:52:02 PM)在远程计算机上处理请求时出错

错误:源(sitemanifest)和目标(contentPath)与给定操作不兼容。错误计数:1

我为目的地提供商尝试了许多不同的组合,但没有乐趣:(


是否有人成功地从命令行复制了VS2010 Web应用程序项目“一键式”发布?

按照本文在IIS服务器上正确配置Web部署处理程序


您要做的是运行/obj/release/package文件夹中的[project name].deploy.cmd文件

首先,在Visual Studio中,转到“项目属性”页,然后转到“打包/发布Web”设置,选择“发布”配置,然后在“IIS网站/应用程序名称”设置中定义内容路径

现在运行与您正在使用的MSBuild脚本完全相同的脚本,它将使用/obj/release/package/[project name].SetParameters.xml文件中定义的内容路径创建包

最后一步就是运行[project name].deploy.cmd/Y/M:http://x.x.x.x/MsDeployAgentService 在/obj/release/package文件夹中


这将使用所有适当的参数调用MSDeploy。

Update:取得了一些进展,命令:MSDeploy-verb:sync-source:manifest=“C:\MyApplication\obj\Release\Package\MyWebApplication.SourceManifest.xml”-dest:auto,computername=x.x.x.x,userName=admin,password=xyz将连接,但由于错误而失败…在远程计算机上处理请求时出错。错误:当“setAcl”提供程序与物理路径一起使用时,必须指定“setAclUser”设置的值。hmmmm,有什么想法吗?