Visual Studio预构建脚本无法在windows / system32中找到exe文件

时间:2009-11-04 05:20:22

标签: visual-studio events command prompt

我很难过。突然之间,Visual Studio无法在Windows / System32目录中找到exe文件(例如 xcopy attrib 等)。

我有一些预构建和后构建事件,它们执行使用xcopy和attrib的批处理文件。以前它们工作正常,但今天,在构建过程中,Visual Studio找不到它们。显示错误:'xcopy'未被识别为内部或外部命令,可操作程序或批处理文件

当我第一次发现问题时,我尝试在常规cmd提示符下运行xcopy,并出现同样的问题。重新启动计算机后,问题在常规cmd提示符中消失,但仍保留在Visual Studio中。重新启动后,Visual Studio cmd提示中也不会出现此问题 - 仅在Visual Studio本身内。

如果在其中一个批处理文件中执行 set 以检查PATH变量或 echo%systemroot%,则一切正常。

在“工具” - >“选项”菜单中,有VisualC ++目录的设置。但是,我正在运行C#,而不是C ++,此外,我从未更改过这些设置,看起来它们是正确的。

以前有人遇到过这个问题吗?想法?

2 个答案:

答案 0 :(得分:4)

我在尝试使用Visual Studio构建时遇到了同样的问题。

尝试手动运行XCOPY并且失败并显示消息“xcopy”未被识别为内部或外部命令,可运行程序或批处理文件“

所以我尝试手动导航到C:\ WINDOWS \ SYSTEM32并执行XCOPY。它奏效了!

解决方案:

  1. 导航到控制面板 - >系统 - >高级系统设置 - >环境变量

  2. 首次安装Windows时,该变量为: %SYSTEMROOT%\ SYSTEM32;%SYSTEMROOT%;%SYSTEMROOT%\ System32下\ WBEM

    将这些放在 PATH 变量的开头,然后单击“确定”两次。

  3. 您需要重新启动正在运行的应用程序才能将新路径应用于它们,而不是系统。

答案 1 :(得分:1)

这只能是以下两种情况之一:从批处理文件中看到的PATH问题,或者正在运行的命令中的拼写错误(例如,XCOPY)。

%systemroot%并不重要,因为XCOPY等在SYSTEM目录中(在WinXP C:\ Windows \ System32上),而%systemroot%是Windows目录(更高一级 - 再次,在XP C:\ Windows)。