【问题标题】:Visual Studio pre-build scripts can't find exe files in windows/system32 [closed]Visual Studio 预构建脚本在 windows/system32 中找不到 exe 文件 [关闭]
【发布时间】:2010-12-12 21:49:53
【问题描述】:

我被难住了。突然Visual Studio在Windows/System32目录下找不到exe文件(如xcopyattrib等)。

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

当我第一次注意到这个问题时,我尝试在常规 cmd 提示符下运行 xcopy,但同样的问题发生了。重新启动计算机后,问题在常规 cmd 提示符中消失了,但仍然存在于 Visual Studio 中。重新启动后,问题也不会出现在 Visual Studio cmd 提示符中 - 仅来自 Visual Studio 本身。

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

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

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

【问题讨论】:

  • 这个问题在今天早上再次重启后自行解决。我将其归咎于 Windows 更新或流氓系统管理员执行的一些奇怪的事情。

标签: visual-studio events command prompt


【解决方案1】:

我之前尝试从 Visual Studio 构建时遇到了同样的问题。

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

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

解决方法:

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

  2. 首次安装 Windows 时,该变量为: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

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

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

【讨论】:

  • 这救了我的命! Visual Studio 在前面需要这三个变量才能找到东西....谢谢 dopplesoldner!
  • 就我而言,问题是在安装新的 Java 版本后出现的。该安装将其路径放在PATH 变量的开头,导致上述问题。
【解决方案2】:

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

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

【讨论】:

  • 这就是我的想法,但是当我通过命令行手动运行批处理文件(甚至是 VS 命令提示符)时,批处理文件执行得很好
  • 还有一种情况:在 Windows 8 中,我的 VS 2012 无法在 System32 中运行应用程序,即使它是以管理员身份运行的。我不得不将程序移出 System32。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多