MS Web Deploy命令行部署中的参数传递

3
我使用msbuild构建了我的网站的部署包。现在,我想使用位于该包中的deploy.cmd文件将其部署到远程服务器上。我正在使用Web Deploy的参数,并希望使用-setParam标志在命令行中设置这些参数。
WebDeploy的使用说明表明,由于-setParam配置选项包含"="字符,因此需要将其用引号括起来。然而,deploy.cmd文件将整个选项(包括引号)传递给msdeploy可执行文件。由于该选项未以"-"字符开头,msdeploy可执行文件无法运行。
Error: Unrecognized argument '"-setParam:TestParam=ABC123"'. All arguments must begin with "-".

我需要做什么才能让setParam调用与由msBuild生成的cmd文件一起工作?
2个回答

1

我已经成功地在以下语法中使用了-setParam选项,将整个选项用双引号括起来,并在内部重复双引号:

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

我已经将所有内容放在引号内,但没有加倍引号。MyApp.deploy.cmd /Y "-setParam:name="IIS Web Application Name",value="MyApplicationNameinIIS""。这也可以工作。 - Gopinath

0
你不需要因为等号而将整个参数用引号括起来。只需要将参数的键和值用引号括起来,因为它们可能包含空格。
-setParam:"TestParam"="ABC123"

应该适用于你的示例。或者在现实世界中:

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

嗨Steven,那个不起作用,我得到了:错误:无法识别的参数“TestParam”。从运行命令的输出来看,deploy.cmd正在删除我传入的空格。当我直接运行msdeploy可执行文件时,我没有问题。似乎打包生成的deploy.cmd正在破坏参数。 - Not Specified
@NotSpecified 你尝试过在引号周围使用所有的转义字符吗? - Steven V
可能吧。我不确定我是否了解所有的选项,但我尝试了我知道的选项。 - Not Specified

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接