如果有引号,则从部署对话框(而不是powershell)进行MS部署将不起作用

本文关键字:部署 powershell 进行 不起作用 MS 对话框 如果 | 更新日期: 2023-09-27 18:20:01

在我的Visual Studio 2010 SP1Rel中,MS web部署突然停止工作,并出现以下错误:

Unrecognized argument 'Web'. All arguments must begin with "-".

参数"Web"引用了参数"Default Web Site",即如果路径包含空格,则Web部署无法部署。这一直持续到今天。

如果我将我的网站重命名为DefaultWebSite(没有空格),则错误消息将更改为:

Unrecognized argument 'Source=10.10.10.1'MSSQLSERVER,1432;Initial'. 
All arguments must begin with "-".

同样的错误还有其他问题,但情况不同。我正在使用内置的web部署对话框。

同样的错误,但对于批处理脚本:MSDeploy批处理文件不再处理引号同样的错误,但在powershell中:当参数有空格时,如何从powershell调用msdeploy?

这些问题与安装VS 2010 SP1有关。我没有安装SP1。它可能已自动安装在windows更新中。

使用MS部署对话框(右键单击VS中的项目并单击部署)时,如何解决此错误?

如果有引号,则从部署对话框(而不是powershell)进行MS部署将不起作用

这是UseMSDeployExe标志工作方式中的一个错误;它正在为WebDeploy生成一组无效的命令行参数。试着从wpp.targets文件中删除这一行,它应该可以正常工作。这个错误将在将来的版本中得到修复。

附带说明:UseMSDeployExe主要用于VS团队调试WebDeploy问题的测试挂钩。VS有两种不同的模式:在进程内使用WebDeploy(我认为是通过反射),在进程外使用msdeploy.exe(因此使用UseMSDeployExe标志)。设置UseMSDeployExe没有真正的好处,除非您正在寻找VS传递给WebDeploy的命令参数。