Сценарии предварительной сборки Visual Studio не могут найти exe файлы в windows/system32

Я в тупике. Внезапно Visual Studio не может найти exe файлы в каталоге Windows/System32 (например, xcopy, attrib и т.д.).

У меня есть некоторые события предварительной сборки и пост-сборки, которые выполняют пакетные файлы, которые используют xcopy и атрибут. Раньше они работали нормально, но сегодня, во время процесса сборки, Visual Studio не может их найти. Отображается ошибка: "xcopy" не распознается как внутренняя или внешняя команда, операционная программа или командный файл.

Когда я впервые заметил проблему, я попробовал запустить xcopy в обычной командной строке cmd и возникла та же проблема. После перезагрузки компьютера проблема исчезла в обычной командной строке, но осталась в Visual Studio. После перезагрузки проблема не возникает в командной строке Visual Studio - либо только из самой Visual Studio.

Все выглядит нормально, если в одном из пакетных файлов, которые я выполняю, установлен, чтобы проверить переменную PATH или echo% systemroot%.

В меню "Инструменты- > Параметры" есть настройки для каталогов VisualС++. Однако я запускаю С#, а не С++, и, кроме того, я никогда не менял эти настройки, и они кажутся правильными.

У кого-то была эта проблема раньше? Мысли?

2 ответа

Я столкнулся с той же проблемой ранее при попытке создать из Visual Studio.

Пытался запустить XCOPY вручную и не получилось с сообщением "xcopy" не распознается как внутренняя или внешняя команда, оперативная программа или командный файл "

Итак, я попытался вручную перейти на C:\WINDOWS\SYSTEM32 и выполнить XCOPY. Это сработало!

Решение:

  • Перейдите в Панель управления → Система → Дополнительные параметры системы → Переменные среды

  • Когда Windows впервые установлена, эта переменная: % SystemRoot%\system32;% SystemRoot%;% SystemRoot%\system32\Wbem

    Поместите их в начало переменной PATH и дважды нажмите "ОК".

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


Это может быть только одна из двух вещей: проблема с PATH, как видно из вашего командного файла, или опечатка в выполняемой команде (например, XCOPY).

% systemroot% не имеет большого значения, так как XCOPY и т.д. находятся в каталоге SYSTEM (на WinXP C:\Windows\System32), а% systemroot% - это каталог Windows (на одном уровне выше - снова, на XP C:\Windows).

licensed under cc by-sa 3.0 with attribution.