1

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

使用 Process.Start("ServerManager.msc") 时,出现以下异常:
System.ComponentModel.Win32Exception。
Message="系统找不到指定的文件"。

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

有任何想法吗?

4

2 回答 2

1

在 WOW64 上,如果 32 位应用程序引用 C:\Windows\System32;操作系统透明地将其重新映射到 C:\Windows\SysWOW64(这是 32 位内容所在的位置)。

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

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

于 2010-03-15T14:49:38.227 回答
-1

请使用depends.exe找出丢失的文件/dll。

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

于 2010-03-15T14:50:00.603 回答