MSBUILD:错误MSB1008:只能指定一个项目

Ger*_*iss 102 msbuild visual-studio-2008 visual-studio

为什么我收到以下Build错误?

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Code\EduBenesysNET\EduBenesysNET\EduBenesysNET.vbproj /t:publish /p:Configuration=Release /p:Platform=AnyCPU /v:detailed /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 Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3603]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

MSBUILD : error MSB1008: Only one project can be specified.
Switch: Education

For switch syntax, type "MSBuild /help"

我没有看到如何指定第二个项目.
它存储在某个项目文件中吗?

Mat*_*att 123

事实证明,PublishDir属性中的尾部斜杠是转义结束引号.逃避尾随斜线解决了我的问题.

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\\"
Run Code Online (Sandbox Code Playgroud)

这样我们可以为MSBuild需要尾部斜杠的属性中具有空格的路径使用引号.

我知道这是一个老帖子,但我觉得我需要与某人分享这个:-)


Ger*_*iss 37

解决方法
删除/ p:PublishDir设置周围的报价


取代引号

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\"  
Run Code Online (Sandbox Code Playgroud)

不使用引号

/p:PublishDir=\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\  
Run Code Online (Sandbox Code Playgroud)

对不起,我没有尽快发布我的发现.我实际上不得不再次研究,看看需要改变什么.谁会想到删除引号会起作用?我在查看同事构建另一个解决方案时发现了这一点,并注意到它没有引号.

  • 可能你的路径中的最后一个反斜杠是逃避收盘双引号.如果正确,那么您不需要删除双引号,而是需要转义反斜杠. (7认同)
  • 这很奇怪.在我的情况下,我得到了相同的错误,但问题是我有一个带引号的无引号路径.添加引号可以解决问题. (2认同)
  • 请记住,dir路径中的空格需要转义或必须放在双引号内 (2认同)

Jul*_*rau 25

如果路径或属性包含空格且未引用,则会出现此问题.

你的所有属性和路径都引用了它们,这很奇怪.错误消息指示Education为交换机,尝试删除/p:ProductName="Total Education TEST"以查看它是否有效.

  • 避免文件夹路径中的空格来摆脱这个问题. (4认同)

fri*_*day 22

在Git Bash上我必须用双斜杠指定参数,如:

MSBuild.exe "Path\to\Solution.sln" //p:Platform="x86" //p:Configuration=Release //p:AppxBundlePlatforms="x86" 
Run Code Online (Sandbox Code Playgroud)

  • 或者,您可以使用“-p”代替“/p”。 (5认同)
  • 看起来这是根本原因,与 Git_Bash 如何在 POSIX 路径上工作相关,以斜杠开头,将 Windows 样式路径混合在一起,双斜杠解决,或者您可以禁用自动路径转换以保留互操作性历史记录:http://www.mingw .org/wiki/Posix_path_conversion 发行说明 https://github.com/git-for-windows/build-extra/blob/a9090580ee37686a53166796dffda531041e16f8/ReleaseNotes.md (2认同)

小智 10

您需要在路径和文件名周围放置qoutes.
所以使用MSBuild"C:\ Path Name\File Name.Exe"/ [Options]