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

标签 asp.net command-line publish oneclick msdeployserviceagent

在远程Web服务器上我已经安装了远程服务http://x.x.x.x/MsDeployAgentService .

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

我现在想做的是从命令行执行此功能。

我猜这是两个步骤。首先使用相关的构建配置构建 Web 应用程序项目:

msbuild "C:\MyApplication\MyWebApplication.csproj" 
        /T:Package /P:Configuration=Release

然后发出 MsDeploy 命令以使其与删除的 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

不幸的是我收到错误:

Error: (10/05/2010 3:52:02 PM) An error occurred when the request was processed on the remote computer.

Error: Source (sitemanifest) and destination (contentPath) are not compatible for the given operation. Error count: 1.

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

有人设法从命令行复制 VS2010 Web 应用程序项目“一键”发布吗?

最佳答案

您想要做的是运行/obj/release/package 文件夹中的 [项目名称].deploy.cmd 文件。

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

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

最后一步只是在/obj/release/package 文件夹中运行 [项目名称].deploy.cmd/Y/M:http://x.x.x.x/MsDeployAgentService。

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

关于asp.net - 如何使用VS2010一键发布(MsDeploy)从命令行进行远程部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2800814/

相关文章:

asp.net - 无法加载程序集 'App_Web_kh7-x3ka'。确保在访问页面之前已编译

c# - 改文件名显示不改原名

asp.net - ASP.NET Chart 控件在浏览器中支持 canvas/html5 吗?

Linux:查找链接到特定目录的所有软链接(soft link)

video - 使用 FFMPEG 将单帧添加到 MP4 的末尾

visual-studio-2017 - 发布与没有 Azure 或持续交付的 2017 项目

Asp.net session 越界/混淆

mysql - 如何在 Mac OS Lion 上从命令行启动 MySQL 服务器?

asp.net-mvc - 发布 .NET Core 应用程序时出现错误 "Could not find a part of the path"

iis - 我无法使用在 IIS 上发布的 blazor webassembly 执行网站