Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从32位.NET应用程序在64位Windows Server 2008上启动ServerManager.msc?_C#_.net_Windows_64 Bit_Wow64 - Fatal编程技术网

C# 如何从32位.NET应用程序在64位Windows Server 2008上启动ServerManager.msc?

C# 如何从32位.NET应用程序在64位Windows Server 2008上启动ServerManager.msc?,c#,.net,windows,64-bit,wow64,C#,.net,Windows,64 Bit,Wow64,我有以下场景: -64位Windows Server 2008。 -32位.NET应用程序(由于各种原因需要为x86)。 -我需要从.NET应用程序启动ServerManager.msc 当使用Process.Start(“ServerManager.msc”)时,我得到以下异常: System.ComponentModel.Win32异常。 Message=“系统找不到指定的文件” 在32位Windows Server 2008上,代码运行良好… 我试图将完整路径包含到ServerManage

我有以下场景:
-64位Windows Server 2008。
-32位.NET应用程序(由于各种原因需要为x86)。
-我需要从.NET应用程序启动ServerManager.msc

当使用Process.Start(“ServerManager.msc”)时,我得到以下异常:
System.ComponentModel.Win32异常。
Message=“系统找不到指定的文件”

在32位Windows Server 2008上,代码运行良好…
我试图将完整路径包含到ServerManager.msc,但这也没有帮助。
如果使用或不使用管理员权限运行,也没有区别


有什么想法吗?

在WOW64上,如果32位应用程序指向C:\Windows\System32;操作系统透明地将其重新映射到C:\Windows\SysWOW64(32位的东西就在这里)

作为Win64上的32位应用程序,需要将完整路径指定为
%SYSTEMROOT%\SysNative\ServerManager.msc

SysNative
在x86 Windows上不存在(至少在Win7 Ultimate上没有反向映射),因此您需要先确定您是在x86上还是在x64上。

请使用查找缺少哪个文件/dll


如果它使用的是在更新版本的VC++运行时中编译的x86本机dll/库。在2008服务器上安装最新的VC++运行时。我认为最新的是。

与流程无关。开始感谢tipp!这帮助我解决了这个问题。作为最后一步,我还需要将“ServerManager.msc”替换为“CompMgmtLauncher.exe”,因为.msc文件是由mmc.exe间接加载的。我现在像这样打开文件:Win32Api.GetWindowsDirectory()+“\SysNative\CompMgmtLauncher.exe”