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

在我的Visual Studio 2010 SP1Rel中,MS Web部署突然停止使用此错误:

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

参数“Web”指的是参数“默认网站”,即如果路径包含空格,则无法部署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中右键单击项目并单击“部署”)?

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

附注:UseMSDeployExe主要用作VS团队的测试挂钩,用于调试WebDeploy的问题。 VS有两种不同的模式:进程内使用WebDeploy(通过反思我认为),以及通过shell到msdeploy.exe(因此使用MSDeployExe标志)进行进程外。 设置UseMSDeployExe没有什么好处,除非你正在寻找VS传递给WebDeploy的命令参数。