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

时间:2012-01-12 11:02:15

标签: c# visual-studio-2010 iis msdeploy visual-studio-2010-sp1

在我的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 batch file does not handle quotes anymore 同样的错误,但在powershell中:How do you call msdeploy from powershell when the parameters have spaces?

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

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

1 个答案:

答案 0 :(得分:1)

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

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