#batch-file #msbuild
#пакетный файл #msbuild
Вопрос:
Я установил новую переменную среды, указывающую на msbuild.exe папка.
C:tempTest>echo %DOT_NET4%
C:WindowsMicrosoft.NETFrameworkv4.0.30319
Теперь, если я запускаю новый cmd и запускаю «msbuild.exe «, программы работают нормально, но после запуска этого простого bat программа больше не найдена:
"C:Program FilesTortoiseSVNbinsvn.exe" checkout %CHECKOUT% %PATH%
cd %PATH%
nuget restore OpenText.sln
msbuild.exe OpenText.sln
msbuild не распознается как внутренняя или внешняя команда.
Заранее спасибо
Комментарии:
1. @Sean83 Да, я пытаюсь создать сценарий сборки, но он не может найти необходимые исполняемые файлы.
2. Вы пропускаете ключевую часть этого пакетного файла? Потому что вы используете
PATH
там переменную среды (которая имеет определенное значение) способом, который на самом деле не совместим с этим значением. Однако мне не хватает той части, где вы установилиPATH
. Без вашего измененияPATH
я не вижу, как возможно то, что вы описываете.
Ответ №1:
Я вижу то же самое, что и Джоуи в его комментарии. Ваше использование CD %PATH%
— это красный флаг, указывающий на проблему.
PATH
это критическая переменная среды, которая содержит разделенный список путей к папкам, в которых находятся важные исполняемые файлы. Командный процессор использует этот список для поиска программ, когда выдается внешняя команда без полного пути к команде.
Если ПУТЬ установлен правильно, ваша команда CD %PATH%
не может работать. Но я подозреваю, что у вас есть какой-то скрипт, который определяет ПУТЬ к определенной папке, возможно, где находится nuget. В этом случае ваша CD %PATH%
команда работает, но теперь cmd.exe понятия не имеет , где msbuild.exe находится в расположении.
Мораль истории — никогда не используйте PATH в своих целях. Выберите другое имя переменной, которое не зарезервировано.
Ответ №2:
Во-первых, где вы устанавливаете путь msbuild? Чтобы решить ваши проблемы, пожалуйста, проверьте, выполнили ли вы этот процесс:
- Откройте панель управления системой, проверьте дополнительные системные настройки.
- Нажмите на переменные среды и отредактируйте ПУТЬ
- Добавьте точку с запятой, за которой следует путь msbuild.
- Откройте новую командную строку и проверьте, работает она или нет.
- Пожалуйста, обратите внимание, что если вы установите msbuild в одной командной строке, он не будет доступен в другой командной строке.
-
Еще одна проблема, которую я вижу, когда смотрю на вашу логику, заключается в том, что вы пытаетесь записать на компакт-диск %PATH%, чего следует избегать, вы либо сбрасываете переменную среды path на новый путь и пытаетесь записать его на компакт-диск, либо у вас возникают более длинные проблемы с именем файла, пожалуйста, используйте вместо этого другую переменную.
-
В вызываемом вами bat-файле добавьте условие на корневом уровне, чтобы, если msbuild не найден, основываясь на %ERRORLEVEL%, попробуйте снова добавить msbuild в path на пакетном уровне, чтобы продолжить сборку.