2013-08-19 57 views
0

我正在使用C#编写visual studio 2012,但是其中一些命令不适用于Visual Studio。一些Process.Start命令不起作用

我试图访问

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

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

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

+1

任何错误/异常?它是什么样的项目? – wudzik

+0

Win32Exception ... 系统找不到指定的文件 –

+0

你是什么意思的“不与视觉工作室合作”?您是将这些作为应用程序的一部分运行,还是作为VS插件的一部分?你的问题目前还不清楚。 –

回答

4

总结了我放在评论 - 你看到的问题,因为你是在一个32位进程运行然后服从File System Redirection - 尝试访问系统目录将被重定向到(默认)C:\ Windows \ SysWOW64。这个目录不包含msconfig.exe

Visual Studio 2012引入了AnyCPUPrefer 32-bit选项,并且默认情况下选择该选项。

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

+0

非常感谢.....它工作 –

1

这不是任何安全措施。作为例外说,在磁盘上找不到文件。这是Visual Studio项目文件配置的问题。

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

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

有设置直观表示下面的图片一看:

enter image description here

标记为已回答,如果能解决问题

+0

非常感谢..... 这是工作.... –