MSBUILD:错误MSB1008:只能指定一个项目
为什么我得到以下的生成错误?
C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C:\ Code \ EduBenesysNET \ EduBenesysNET \ EduBenesysNET.vbproj / t:publish / p:Configuration = Release / p:Platform = AnyCPU / v:详细/ p:PublishDir =“\\ BSIIS3 \ c $ \ DATA \ WEBSITES \ benesys.net \ benesys.net \ TotalEducationTest \”/p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest/ “/p:ApplicationVersion=1.0.1.198 / p:ProductName =”Total Education TEST“/ p:PublisherName =”BeneSys,Inc.“ / p:UpdateRequired =“True”/p:MinimumRequiredVersion=1.0.1.198 Microsoft(R)Build Engine版本3.5.30729.1 [Microsoft .NET Framework,版本2.0.50727.3603] 版权所有(C)Microsoft Corporation 2007.保留所有权利。 MSBUILD:错误MSB1008:只能指定一个项目。 开关:教育 对于开关语法,请键入“MSBuild / help”
 我不明白如何指定第二个项目。 
 它是否存储在某个项目文件中? 
事实certificate,PublishDir属性中的斜线正在转义结束引号。 逃避的斜线解决了我的问题。
/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\\" 这样,我们可以在MSBuild需要结尾斜杠的属性中使用带有空格的path的引号。
我知道这是一个旧post,但我觉得我需要与某人分享这个:-)
  解 
 删除/ p:PublishDir设置周围的引号 
 即 
 而不是引号 
  / P:PublishDir = “\ BSIIS3 \ C $ \ DATA \ WEBSITES \ benesys.net \ benesys.net \ TotalEducationTest \” 
 不使用引号 
  / P:PublishDir = \ BSIIS3 \ C $ \ DATA \ WEBSITES \ benesys.net \ benesys.net \ TotalEducationTest \ 
对不起,我没有提前发布我的发现。 实际上我不得不重新研究一下,看看需要改变什么。 谁会想到删除引号会起作用? 在查看同事构build另一个解决scheme时我发现了这一点,并注意到它没有引号。
当您有一个path或包含一个空间,并没有引用的属性时,会出现此问题。
 你的所有财产和path都有引号,这很奇怪。 错误消息指示Education作为开关,尝试删除/p:ProductName="Total Education TEST" ,看看它是否工作。 
 您需要在path和文件名称周围inputqoutes。 
 所以使用MSBuild“C:\path名\文件名.Exe”/ [选项] 
尝试在发布path和安装url的末尾删除尾部的反斜杠或斜线
 /p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest" /p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest" 
你必须用\“和(或)/”命令打出一个特殊的字符序列,但是我不知道cmd.exe是否足够了。
我personnaly总是使用Powershell:这是更加友好和强大的方式!
希望能帮助到你!
在vs2012中,只是尝试使用默认的TFS模板“DefaultTemplate …. xaml”(通常是它的一个副本)创build一个构build定义“testing构build”
它会失败,通常自我解释错误:“MSBUILD:错误MSB1008:只能指定一个项目。开关:活动”
 在默认的TFS模板某处“某些地方"丢失,所以msbuild将收到一个包含空格的非转义目录作为参数,这样会导致多个项目(?!) 
所以从来没有使用TFS构build定义名称中的空格,同时也相当伤心和简单
这在TFS MSBuild参数中为我工作。 请注意斜杠的数量。
/ p:DefaultPackageOutputDir =“\\ Rdevnet \ Visual Studio Projects \ Insurance \”
当我得到错误时,我正在用密码参数的单引号
  /p:password='my secret'不好 
并将其更改为使用双引号来解决问题。
  /p:password="my secret"不错 
对于任何需要包含空格的值引用的参数,可能都是这样。
为了防止有人遇到同样的问题,我在“/ p”参数之前缺less“/”。 从描述中不太清楚。 我希望这可以帮助别人。
对于我,我忘了添加结束语
 /p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory) 
至
 /p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)" 
如果您在Jenkins中使用默认工作区,则可能发生这种情况。 使用自定义工作区位置没有任何空格。
 