Command line 在MS Web Deploy命令行部署中传递参数

Command line 在MS Web Deploy命令行部署中传递参数,command-line,msdeploy,webdeploy,Command Line,Msdeploy,Webdeploy,我使用msbuild为我的网站构建部署包。我正在尝试使用包中生成的deploy.cmd文件部署到远程服务器。我正在使用WebDeploy的参数,我想在命令行中使用-setParam标志设置这些参数 WebDeploy的使用说明指出,我需要将-setParam配置选项括在引号中,因为它包含一个“=”字符。但是,deploy.cmd文件将整个选项(包括引号)传递给msdeploy可执行文件。msdeploy可执行文件无法运行,因为该选项没有以“-”字符开头 Error: Unrecognized a

我使用msbuild为我的网站构建部署包。我正在尝试使用包中生成的deploy.cmd文件部署到远程服务器。我正在使用WebDeploy的参数,我想在命令行中使用-setParam标志设置这些参数

WebDeploy的使用说明指出,我需要将-setParam配置选项括在引号中,因为它包含一个“=”字符。但是,deploy.cmd文件将整个选项(包括引号)传递给msdeploy可执行文件。msdeploy可执行文件无法运行,因为该选项没有以“-”字符开头

Error: Unrecognized argument '"-setParam:TestParam=ABC123"'. All arguments must begin with "-".

要使setParam调用使用msBuild生成的cmd文件,我需要做什么?

由于等号的原因,不需要将整个参数括在引号中。仅输入参数键和值,因为它可能包含空格

-setParam:"TestParam"="ABC123"
你的例子应该有用。或者在现实世界中:

-setParam:"IIS Web Application Name"="example.com"

已成功使用以下语法中的
-setParam
选项,将整个选项括在双引号中,并在其中添加双引号:

...deploy.cmd "-setParam:name=""IIS Web Application Name"",value=""example.com"""

嗨,史蒂文,这不起作用,我得到:错误:无法识别的参数“TestParam”。从运行命令的输出来看,deploy.cmd正在从我传入的内容中删除空格。当我直接运行msdeploy可执行文件时,我没有问题。包中生成的deploy.cmd似乎正在损坏参数。@未指定您是否尝试过使用引号周围的所有转义字符?可能。我不确定我是否都知道,但我尝试了我知道的选项。我已经附上了所有的内部引号,但没有加倍引号
MyApp.deploy.cmd/Y“-setParam:name=“IIS Web应用程序名称”,value=“MyApplicationNameinIIS”“
。它也有效。