Не удалось запустить указанный исполняемый файл задачи LC.exe.

Я разрабатываю решение SharePoint 2013 с использованием VS 2012, в решении есть файл licx. Я получаю ошибку времени компиляции и предупреждение.

Ошибка: Не удалось запустить указанный исполняемый файл задачи «LC.exe». Имя файла или расширение слишком длинное

Предупреждение: Командная строка для задачи "LC" слишком длинная. Командные строки длиннее 32000 символов, скорее всего, не будут работать. Попробуйте уменьшить длину командной строки, разбив вызов "LC" на несколько вызовов с меньшим количеством параметров для каждого вызова.

Я попробовал, что lc.exe.config имеет <startup useLegacyV2RuntimeActivationPolicy="true">. Я также попытался переместить решение на «C: \», которое ранее было в папке «Проекты».

Я все еще не могу решить эту ошибку.


person Kiran Srikanta    schedule 06.02.2013    source источник
comment
Кажется, это связано с Microsoft.SharePoint.dll, если я удалю эту ссылку из проекта, он правильно скомпилируется. Но я не могу обойтись без SharePoint API...   -  person Kiran Srikanta    schedule 07.02.2013
comment
Возможная копия LC.exe не может быть запущена   -  person Lafexlos    schedule 24.11.2015


Ответы (5)


Существует обходной путь поддержки MS:

когда вы создаете проект, удаляйте файл лицензии из проекта каждый раз, когда вы получаете эту ошибку, просто удалите файл лицензии

https://connect.microsoft.com/VisualStudio/feedback/details/779433/lc-exe-task-command-line-too-long

person zchpit    schedule 23.07.2013
comment
Если вы собираетесь скопировать и вставить свой ответ из другого вопроса о той же проблеме, подумайте, должен ли я опубликовать повторяющийся ответ на этот повторяющийся вопрос, или я должен не отвечать, а вместо этого пометить этот вопрос как дубликат, а затем выбрать последний. Пытаясь сохранить НАСТОЛЬКО чистым, каждый бит помогает. - person Tim; 27.11.2015
comment
Это недопустимый обходной путь, если компонент лицензии должен работать для лицензирования сторонних компонентов, например, например. релизные сборки. - person Shiv; 28.07.2016

Вы сможете значительно сэкономить на длине пути, сделав ярлык для конкретной версии .NET, которую вы используете (в данном случае 4.5.2). Вот шаги;

  1. запустить командную строку от имени администратора
  2. Перейдите в C:\ в командной строке
  3. mklink /J net452 "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2"
  4. Перейти в VisualStudio
  5. Откройте свойства проекта
  6. Загляните во вкладку «Ссылки»
  7. Нажмите кнопку «Справочные пути» и добавьте путь «C:\net452».
  8. Перестроить проект
person serializer    schedule 12.03.2018

Удаление файла licenses.licx не является решением. Это выдаст вам ошибку во время выполнения, если вы используете сторонний элемент управления, для которого требуются лицензии.

LC.exe принимает аргумент в виде файла лицензии с полным путем, если аргумент слишком длинный, выдается ошибка.

Поэтому оставьте имя файла и путь короче, он скомпилируется и заработает.

person Raman Sharma    schedule 12.04.2016
comment
Опять же, это будет работать, только если ваше решение достаточно маленькое. С более крупным решением, в котором есть компоненты, зависящие от lc.exe, ваш базовый путь начнет становиться меньшим фактором. - person Shiv; 28.07.2016

Удаление файла лицензии мне не помогло. Я заканчиваю тем, что удаляю "licenses.licx" в группе Solution Explorer -> Properties Surly, которая помогает

person Kiarash    schedule 26.11.2015
comment
К сожалению, это всего лишь обходной путь, а не долгосрочное решение. Microsoft необходимо решить проблему масштабируемости программы lc.exe. - person Shiv; 29.04.2016

Эта проблема исправлена ​​в VS2017 в соответствии с этой проверкой GitHub: msbuild/commit/e49717c727c3cab4db466bcb0a5abb624a8156bb Я считаю, что это полная версия VS2017 Update 2.

person Shiv    schedule 19.07.2017