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中使用默认工作区,则可能发生这种情况。 使用自定义工作区位置没有任何空格。

在这里输入图像说明