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