Msbuild error msb1008 можно указать только один проект

 locked

MSBUILD : error MSB1008: Only one project can be specified. Switch: FilesMicrosoft For switch syntax, type «MSBuild /help»

RRS feed

  • Question

  • MSBUILD : error MSB1008: Only one project can be specified. Switch: FilesMicrosoft For switch syntax, type «MSBuild /help»

Answers

  • The error usually comes because of the space in arguments. Try to add the double quotes to path of solution and then
    try again.

    • Marked as answer by
      John QiaoModerator
      Friday, January 21, 2011 4:28 AM

All replies

  • The error usually comes because of the space in arguments. Try to add the double quotes to path of solution and then
    try again.

    • Marked as answer by
      John QiaoModerator
      Friday, January 21, 2011 4:28 AM

  • Hi Muhammad,

    Thanks for your post.

    As Jehan said that the space is interpreted as multiple projects, you should to add the “ character around the sln file, like this: msbuild.exe “c:……project1.sln”.

    Has this issue been resolved?


    John Qiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

  • I am having the same problem.  I’ve got this to work but sometimes it doesn’t.  What am I doing wrong ?

    msbuild «C:developSEIExplorerSQExplorerSEIExplorer_2005.csproj» /target:publish p:InstallUrl=\sv-qnap1.seismicventures.comdataseiexplorer /p:PublishDir=\sv-qnap1.seismicventures.comdataseiexplorer /p:ApplicationRevision=1 /p:Application=300* /p:PublisherName=»SEI»
    /p:ProductName=»Seismic Explorer»

    I’m really desperate to get this working as I have to deliver my app to two distinct servers and the versions need to be consistent with one another but the installs seperate.

    thanks,

    kyle

    • Proposed as answer by
      Riccardo Ballarino
      Thursday, August 28, 2014 10:18 AM

  • In vs2012 just try to create a Build definition «Test Build» using the default TFS template  «DefaultTemplate….xaml» (usually a copy of it)
    It will fail with the usual self-explaining-error : «MSBUILD : error MSB1008: Only one project can be specified.Switch: Activities»
    Off course somewhere in the default TFS template some » are missing so msbuild will receive as parameter a non escaped directory containing spaces so will result in multiple projects(?!)
    So NEVER use spaces in you TFS  Build Definition names, pretty sad and simple at the same time

 locked

MSBUILD : error MSB1008: Only one project can be specified. Switch: FilesMicrosoft For switch syntax, type «MSBuild /help»

RRS feed

  • Question

  • MSBUILD : error MSB1008: Only one project can be specified. Switch: FilesMicrosoft For switch syntax, type «MSBuild /help»

Answers

  • The error usually comes because of the space in arguments. Try to add the double quotes to path of solution and then
    try again.

    • Marked as answer by
      John QiaoModerator
      Friday, January 21, 2011 4:28 AM

All replies

  • The error usually comes because of the space in arguments. Try to add the double quotes to path of solution and then
    try again.

    • Marked as answer by
      John QiaoModerator
      Friday, January 21, 2011 4:28 AM

  • Hi Muhammad,

    Thanks for your post.

    As Jehan said that the space is interpreted as multiple projects, you should to add the “ character around the sln file, like this: msbuild.exe “c:……project1.sln”.

    Has this issue been resolved?


    John Qiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

  • I am having the same problem.  I’ve got this to work but sometimes it doesn’t.  What am I doing wrong ?

    msbuild «C:developSEIExplorerSQExplorerSEIExplorer_2005.csproj» /target:publish p:InstallUrl=\sv-qnap1.seismicventures.comdataseiexplorer /p:PublishDir=\sv-qnap1.seismicventures.comdataseiexplorer /p:ApplicationRevision=1 /p:Application=300* /p:PublisherName=»SEI»
    /p:ProductName=»Seismic Explorer»

    I’m really desperate to get this working as I have to deliver my app to two distinct servers and the versions need to be consistent with one another but the installs seperate.

    thanks,

    kyle

    • Proposed as answer by
      Riccardo Ballarino
      Thursday, August 28, 2014 10:18 AM

  • In vs2012 just try to create a Build definition «Test Build» using the default TFS template  «DefaultTemplate….xaml» (usually a copy of it)
    It will fail with the usual self-explaining-error : «MSBUILD : error MSB1008: Only one project can be specified.Switch: Activities»
    Off course somewhere in the default TFS template some » are missing so msbuild will receive as parameter a non escaped directory containing spaces so will result in multiple projects(?!)
    So NEVER use spaces in you TFS  Build Definition names, pretty sad and simple at the same time

Почему я получаю следующую ошибку сборки?

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: можно указать только один проект. Switch: Education Для синтаксиса переключателя введите "MSBuild / help"

Я не вижу, как уточняется второй проект.
Он хранится где-нибудь в файле проекта?

19 ответы

Оказывается, завершающая косая черта в свойстве PublishDir экранирует конечную кавычку. Избегая косой черты, я решил мою проблему.

/p:PublishDir="\BSIIS3c$DATAWEBSITESbenesys.netbenesys.netTotalEducationTest\"

Таким образом, мы можем использовать кавычки для путей, у которых есть пробелы в свойствах, которые MSBuild требует завершающей косой черты.

Я знаю, что это старый пост, но мне кажется, что мне нужно поделиться им с кем-нибудь :-)

ответ дан 14 дек ’12, 05:12

РЕШЕНИЕ
Удалите кавычки вокруг параметра / p: PublishDir

т.е.
Вместо цитат

/p:PublishDir="\BSIIS3c$DATAWEBSITESbenesys.netbenesys.netTotalEducationTest"  

Не используйте кавычки

/p:PublishDir=\BSIIS3c$DATAWEBSITESbenesys.netbenesys.netTotalEducationTest  

Мне очень жаль, что я не опубликовал свое открытие раньше. Мне действительно пришлось снова исследовать, чтобы увидеть, что нужно изменить. Кто бы мог подумать, что удаление кавычек сработает? Я обнаружил это, когда просматривал сборку коллег для другого решения, и заметил, что в нем нет цитат.

ответ дан 08 дек ’17, 13:12

В Git Bash мне пришлось указать параметры с двойными косыми чертами, например:

MSBuild.exe "PathtoSolution.sln" //p:Platform="x86" //p:Configuration=Release //p:AppxBundlePlatforms="x86" 

Создан 04 июля ’18, 11:07

Эта проблема возникает, когда у вас есть путь или свойство, содержащее пробел и не заключенное в кавычки.

Все ваши свойства и путь имеют кавычки, это странно. Сообщение об ошибке указывает Education в качестве переключателя попробуйте удалить /p:ProductName="Total Education TEST" чтобы увидеть, работает ли он.

Создан 23 сен.

Вам нужно поставить кавычки вокруг пути и имени файла.
Поэтому используйте MSBuild «C: Path Name File Name.Exe» / [Параметры]

Создан 29 янв.

Попробуйте удалить обратную косую черту или косую черту в конце пути публикации и установить URL

/p:PublishDir="\BSIIS3c$DATAWEBSITESbenesys.netbenesys.netTotalEducationTest"
/p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest"

Вы, должно быть, набрали особую последовательность символов с «и (или) /», но я недостаточно знаю cmd.exe, чтобы понять.

Лично я всегда использую Powershell: он намного удобнее и мощнее!

Надеюсь, поможет!

Создан 29 янв.

В vs2012 просто попробуйте создать определение сборки «Test Build», используя шаблон TFS по умолчанию «DefaultTemplate …. xaml» (обычно его копию)

Произойдет сбой с обычной самоочевидной ошибкой: «MSBUILD: ошибка MSB1008: можно указать только один проект. Переключатель: Действия»

Конечно, где-то в шаблоне TFS по умолчанию какой-то " отсутствуют, поэтому msbuild получит в качестве параметра неэкранированный каталог, содержащий пробелы, что приведет к созданию нескольких проектов (?!)

Так что НИКОГДА не используйте пробелы в именах TFS Build Definition, довольно грустных и простых одновременно.

ответ дан 28 авг.

Я заключил параметр пароля в одинарные кавычки, когда получил сообщение об ошибке

/p:password='my secret' плохой

и изменил его, чтобы использовать двойные кавычки для решения проблемы.

/p:password="my secret" хорошо

Вероятно, то же самое применимо к любому параметру, которому нужны кавычки для значений, содержащих пробел.

ответ дан 17 авг.

Для меня я забыл добавить заключительную цитату

/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)

в

/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"

ответ дан 05 окт ’17, 21:10

Еще одна причина и решение: проверьте, не поставили ли вы пробел не в том месте, то есть в параметрах; мой был dotnet -c Release - o /home/some/path (обратите внимание на пробел между - и o), Я все смотрел на саму тропинку, которая была правильной и сбивала меня с толку. Надеюсь, это поможет! (это было в Bash, хотя это также должно относиться к Windows)

ответ дан 13 мар ’19, в 02:03

Это сработало для меня в аргументе TFS MSBuild. Обратите внимание на количество косых черт.

/ p: DefaultPackageOutputDir = «\ Rdevnet Visual Studio Projects Insurance «

Создан 24 фев.

Если вы используете рабочее пространство по умолчанию в Jenkins, это может произойти. Используйте настраиваемое расположение рабочего пространства без пробелов.

Введите описание изображения здесь

ответ дан 26 окт ’17, 17:10

Для будущих читателей.

Я получил эту ошибку, потому что в моем указанном файле журнала было пробел:

ДО:

/l:FileLogger,Microsoft.Build.Engine;logfile=c:Folder With SpacesMy_Log.log

ПОСЛЕ: (который решил это)

/l:FileLogger,Microsoft.Build.Engine;logfile="c:Folder With SpacesMy_Log.log"

ответ дан 21 мар ’18, в 13:03

Если вы используете Azure DevOps MSBuild задача ошибка может быть вызвана двойным флагом конфигурации. Пожалуйста, убедитесь, что вы положили $(BuildConfiguration) в указанном поле вместо одного аргумента MSBuild:
Введите описание изображения здесь

ответ дан 04 дек ’19, 15:12

Если вы используете Any CPU вам может потребоваться заключить его в одинарные кавычки.

Конечно, при запуске в Dockerfile мне приходилось использовать одинарные кавычки:

# Fails. Gives: MSBUILD : error MSB1008: Only one project can be specified.
RUN msbuild ConsoleAppFw451.sln /p:Configuration=Debug /p:Platform="Any CPU" 

# Passes. Gives: Successfully built 40163c3e0121
RUN msbuild ConsoleAppFw451.sln /p:Configuration=Debug /p:Platform='Any CPU' 

Создан 10 янв.

На всякий случай, если у кого-то такая же проблема, как у меня, я пропустил «/» перед одним из аргументов «/ p». Не очень понятно из описания. Я надеюсь, что это поможет кому-то.

Создан 21 сен.

ответ дан 09 авг.

Для меня добавление пути к файлу решения в двойных кавычках решило проблему. В имени одной из папок в пути было пустое место, и это заставляло рассматривать 2 файла решения вместо одного. Я выполнил следующее, и это сработало.

MSBuild.exe "C:Folder Name With SpaceProjectproject.sln"

Создан 12 янв.

Я столкнулся с этой проблемой с помощью очень простой команды, в которой не было ни кавычек, ни пробелов, ни косой черты, ничего странного.

Я использовал оболочку MINGW64.

Вместо этого работала та же самая команда из PowerShell.

ответ дан 15 мар ’21, в 11:03

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

visual-studio
visual-studio-2008
msbuild

or задайте свой вопрос.

Понравилась статья? Поделить с друзьями:
  • Msbuild error msb1001 unknown switch
  • Msb3644 как исправить
  • Msasn1 dll ошибка
  • Mssql raise error
  • Msado15 dll как исправить ошибку