Какой недопустимый символ в этой строке? Я получаю MSBUILD: ошибка MSB3095

До сих пор я без проблем создавал некоторые определения сборки в TFS2010.

Команда MSBUILD:


C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe /nologo /noconsolelogger "C:\Builds\Neptune\Sources\\Branches\v5.0-Ehub\EHub-5.0.sln" /m:1 /fl /flp:"logfile=C:\Builds\Neptune\Sources\\Branches\v5.0-Ehub\EHub-5.0.log;encoding=Unicode;verbosity=detailed" /p:SkipInvalidConfigurations=true /p:OutDir="C:\Builds\Neptune\Binaries\\" /p:Configuration="Site" /p:Platform="Mixed Platforms" /p:RunCodeAnalysis="False" /p:VCBuildOverride="C:\Builds\Neptune\Sources\\Branches\v5.0-Ehub\EHub-5.0.sln.Mixed Platforms.Site.vsprops" /dl:WorkflowCentralLogger,"C:\Program Files\Microsoft Team Foundation Server 2010\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Detailed;BuildUri=vstfs:///Build/Build/1222;InformationNodeId=2168680;TargetsNotLogged=GetNativeManifest,GetCopyToOutputDirectoryItems,GetTargetPath;TFSUrl=http://ldu01:8080/tfs/Nova.com;"*WorkflowForwardingLogger,"C:\Program Files\Microsoft Team Foundation Server 2010\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Detailed;"

Я получаю эту ошибку:


(Site target) -> MSBUILD : error MSB3095: Invalid argument. Illegal characters in path. [C:\Builds\Neptune\Sources\Branches\v5.0-EHub\EHub-5.0.sln]

Тем не менее, я не вижу ничего противозаконного в пути, это просто простой путь, и он работает. Что здесь происходит?


EDIT: Удалены двойные косые черты, удалена лишняя точка, удален знак минус, ничего не работает.

EDIT: Позвольте мне быть более конкретным. Он строит часть решения, но как только доходит до точки, выдает мне эту ошибку и возвращается.

EDIT: Еще больше деталей. конкретные строки, где это кажется неудачным:

Using "CombinePath" task from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "CombinePath"
MSBUILD : error MSB3095: Invalid argument. Illegal characters in path. [C:\Builds\Pluto\Sources\Branches\v5.0-Ehub\EHub-5.0.sln]
Done executing task "CombinePath" -- FAILED.
Done building target "Site" in project "EHub-5.0.sln" -- FAILED.
Done executing task "CallTarget" -- FAILED.
Done building target "Build" in project "EHub-5.0.sln" -- FAILED.
Done Building Project "C:\Builds\Pluto\Sources\Branches\v5.0-Ehub\EHub-5.0.sln" (default targets) -- FAILED.

person Conrad Clark    schedule 24.08.2011    source источник
comment
Кроме двойных слэшей в вашей команде ничего необычного не вижу. Но тогда специальные символы могут плохо отображаться в элементе HTML, поэтому я бы сказал, выберите свой путь и запустите его для Path.GetInvalidPathChars(), чтобы узнать, в чем причина проблемы.   -  person Mrchief    schedule 24.08.2011


Ответы (5)


Удивительно (или нет), но проблема не имеет абсолютно никакого отношения ни к недопустимому символу, ни к строке [C:\Builds\Neptune\Sources\Branches\v5.0-EHub\EHub-5.0.sln].

Один из проектов в решении содержал недопустимую ссылку. У другого был неверный путь к dll.refresh.

Одна из этих двух вещей вызвала проблему, но у меня нет времени, поэтому я не буду проверять, какая именно.

Я исправил ссылки, и проблема исчезла.


Мне все еще любопытно, почему я получил ошибку error MSB3095: Invalid argument. Illegal characters in path..

person Conrad Clark    schedule 24.08.2011
comment
Google думает, что это был .refresh - person si618; 25.08.2011

Как насчет минус-символов ('-')? Я не уверен, что здесь допустим знак минус.

person alex    schedule 24.08.2011
comment
Я почти уверен, что минус является допустимым символом для пути, но все равно проверил его, чтобы увидеть, не является ли это какой-то особенностью MSBUILD, и он все еще не работает. - person Conrad Clark; 24.08.2011

Я столкнулся с этой ошибкой и обнаружил, что несколько файлов .refresh были сохранены как типы файлов ANSI. Я загрузил их в блокнот и сохранил обратно в виде файлов Unicode, и это решило мою проблему.

person Curt Keisler    schedule 23.12.2014

У меня была такая же проблема при переходе с VSS на TFS. Я думаю, что ошибка была вызвана веб-службами asmx.

Разрешение :

  1. Перейдите в «Файл», «Управление версиями», «Изменить управление версиями».
  2. Выберите проект, который генерирует ошибку
  3. Нажмите отвязать
  4. Повторно выберите проект
  5. Нажмите привязать

Он должен работать. Если это не так, перед первым шагом (Изменить систему управления версиями) удалите веб-ссылки и после пятого шага (щелкните привязку) щелкните правой кнопкой мыши проект, а затем отмените проверки.

person ihebiheb    schedule 11.03.2015

Я столкнулся с этим один раз. Я запускал msbuild из командной строки, и мне нужно было запустить его из командной строки с повышенными правами (т. е. от имени администратора).

Совершенно вводящее в заблуждение сообщение об ошибке!

person Remotec    schedule 01.01.2017