某些Process.Start命令无效

时间:2013-08-19 05:50:50

标签: c# visual-studio-2012

我正在使用C#在visual studio 2012上工作,但有些命令不适用于visual studio。

我正在尝试访问

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

其他一些类似命令无效。这些功能在Visual Studio 2010中在同一台机器上运行良好。 请给我一些解决方案。

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

2 个答案:

答案 0 :(得分:4)

总结我在评论中添加的内容 - 您看到的问题是因为您在32位进程中运行,然后受File System Redirection的限制 - 您尝试访问系统目录时会被重定向到(默认情况下)C:\ Windows \ SysWOW64。

此目录不包含msconfig.exe

Visual Studio 2012引入了AnyCPU Prefer 32-bit选项,默认情况下已选中。

最好的建议是将build platform切换为64-bit,或取消选中Prefer 32-bit

答案 1 :(得分:1)

这不是任何安全措施。异常说在磁盘上找不到文件。这是Visual Studio Project文件配置的问题。

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。

在下面的图片中查看设置的可视化表示:

enter image description here

如果解决了您的问题,请将其标记为已解答