Почему я получаю следующую ошибку сборки?
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: Образование Для синтаксиса переключателя введите «MSBuild / help».
Я не вижу, как уточняется второй проект.
Он хранится где-нибудь в файле проекта?
visual-studio
visual-studio-2008
msbuild
Герхард Вайс
источник
источник
Ответы:
Оказывается, завершающая косая черта в свойстве PublishDir экранирует конечную кавычку. Избегая косой черты, я решил проблему.
Таким образом, мы можем использовать кавычки для путей с пробелами в свойствах, которые MSBuild требует завершающей косой черты.
Я знаю, что это старый пост, но мне кажется, что мне нужно поделиться им с кем-нибудь :-)
источник
РЕШЕНИЕ
Удалите кавычки вокруг параметра / p: PublishDir
т.е.
вместо цитат
Не используйте кавычки
Мне очень жаль, что я не опубликовал свое открытие раньше. Мне действительно пришлось снова исследовать, чтобы увидеть, что нужно изменить. Кто бы мог подумать, что удаление кавычек сработает? Я обнаружил это при просмотре сборки другого решения коллег и заметил, что в нем нет цитат.
источник
В Git Bash мне пришлось указать параметры двойными косыми чертами, например:
источник
Эта проблема возникает, когда у вас есть путь или свойство, содержащее пробел и не заключенное в кавычки.
Все ваши свойства и путь имеют кавычки, это странно. Сообщение об ошибке обозначается
Education
как переключатель, попробуйте удалить,/p:ProductName="Total Education TEST"
чтобы проверить, работает ли он.источник
MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC
. Это дает мне ошибкуMSBUILD : error MSB1008: Only one project can be specified. Switch: WebSite/New
. В чем может быть проблема?Default WebSite/New
Вам нужно поставить кавычки вокруг пути и имени файла.
Поэтому используйте MSBuild "C: \ Path Name \ File Name.Exe" / [Параметры]
источник
Попробуйте удалить обратную косую черту или косую черту в конце пути публикации и установить URL
Вы, должно быть, набрали особую последовательность символов с помощью \ "и (или) /", но я недостаточно знаю cmd.exe, чтобы понять.
Лично я всегда использую Powershell: он намного удобнее и мощнее!
Надеюсь, поможет!
источник
В vs2012 просто попробуйте создать определение сборки «Test Build», используя шаблон TFS по умолчанию «DefaultTemplate .... xaml» (обычно его копию)
Произойдет сбой с обычной самоочевидной ошибкой: «MSBUILD: ошибка MSB1008: можно указать только один проект. Переключатель: Действия»
Конечно, где-то в шаблоне TFS по умолчанию какой-то
"
них отсутствуют, поэтому msbuild получит в качестве параметра неэкранированный каталог, содержащий пробелы, что приведет к созданию нескольких проектов (?!)Так что НИКОГДА не используйте пробелы в именах TFS Build Definition, довольно грустных и простых одновременно.
источник
Я заключил параметр пароля в одинарные кавычки, когда получил сообщение об ошибке
/p:password='my secret'
плохойи изменил его, чтобы использовать двойные кавычки для решения проблемы.
/p:password="my secret"
хорошоВероятно, то же самое применимо к любому параметру, которому нужны кавычки для значений, содержащих пробел.
источник
Для меня я забыл добавить заключительную цитату
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)
к
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"
источник
Для будущих читателей.
Я получил эту ошибку, потому что в моем указанном файле журнала было пробел:
ПЕРЕД:
ПОСЛЕ: (который решил это)
источник
Еще одна причина и решение: проверьте, не поставили ли вы пробел не в том месте, то есть в параметрах; мой был
dotnet -c Release - o /home/some/path
(обратите внимание на пробел между-
иo
), я продолжал смотреть на сам путь, который был правильным и сбил меня с толку. Надеюсь, это поможет! (это было в Bash, хотя это также должно относиться к Windows)источник
Это сработало для меня в аргументе TFS MSBuild. Обратите внимание на количество косых черт.
/ p: DefaultPackageOutputDir = "\\ Rdevnet \ Visual Studio Projects \ Insurance \"
источник
Если вы используете рабочее пространство по умолчанию в Jenkins, это может произойти. Используйте настраиваемое расположение рабочей области без пробелов.
источник
Если вы используете
MSBuild
задачу Azure DevOps, ошибка может быть вызвана двойным флагом конфигурации. Убедитесь, что вы$(BuildConfiguration)
указали указанное поле вместо первого аргумента MSBuild:источник
Если вы используете
Any CPU
вам может потребоваться заключить его в одинарные кавычки.Конечно, при запуске в Dockerfile мне приходилось использовать одинарные кавычки:
источник
На всякий случай, если у кого-то такая же проблема, как у меня, я пропустил «/» перед одним из аргументов «/ p». Не очень понятно из описания. Я надеюсь, что это поможет кому-то.
источник
Я использовал решение, указанное в https://www.codingdefined.com/2014/10/solved-msbuild-error-msb1008-only-one.html, и это решает проблему. Все, что нам нужно сделать, это проверить пробелы и '' (проверить обратную косую черту) в команде
источник