0

我正在使用 C# 开发 Visual Studio 2012,但某些命令不适用于 Visual Studio。

我正在尝试访问

 Process.Start(Path.Combine(Environment.SystemDirectory, "msconfig.exe"));

其他一些类似的命令不起作用。由于这些功能在同一台机器上的 Visual Studio 2010 中运行良好。请给我一些解决方案。

它显示“Win32Exception ...系统找不到指定的文件”

4

2 回答 2

4

总结我在评论中的内容-您看到问题是因为您在一个 32 位进程中运行,该进程随后受文件系统重定向的影响-您访问系统目录的尝试被重定向到(默认情况下)C: \Windows\SysWOW64。

此目录不包含msconfig.exe.

Visual Studio 2012 引入了一个AnyCPU Prefer 32-bit选项,默认选中。

最好的建议是将您的构建平台切换到64-bit或取消选中Prefer 32-bit

于 2013-08-19T06:47:57.307 回答
1

这不是因为任何安全性。正如异常所说,在磁盘上找不到文件。这是 Visual Studio 项目文件配置的问题。

string path = Path.Combine(Environment.SystemDirectory, "msconfig.exe");
if(File.Exists(path))
  Process.Start(path);

我只是使用默认配置尝试了这个,发现 if 检查本身失败了。为了实现这一点,您将不得不更改项目平台。默认情况下,即使您运行 64 位操作系统并选择任何 CPU,Visual Studio 环境也始终采用 x86。以下是您的程序工作的设置。 Right click on project在解决方案资源管理器中并选择设置 -> 构建 -> 平台目标 ->选择x64。

查看下图以直观地显示设置:

在此处输入图像描述

如果解决了您的问题,则标记为已回答

于 2013-08-19T07:41:32.807 回答