1

次のシナリオがあります
。-64ビットWindowsServer2008。
-32ビット.NETアプリケーション(さまざまな理由でx86である必要があります)。
-.NETアプリケーションからServerManager.mscを起動する必要があります。

Process.Start( "ServerManager.msc")を使用すると、次の例外が発生します:
System.ComponentModel.Win32Exception。
Message="システムは指定されたファイルを見つけることができません"。

32ビットのWindowsServer2008では、コードは正常に機能します...
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

不足しているファイル/dllを見つけるためにdepends.exeを使用してください。

新しいバージョンのVC++ランタイムでコンパイルされたx86ネイティブdll/ライブラリを使用している場合。2008サーバーに最新のVC++ランタイムをインストールします。最新の私は2008SP1だと思います

于 2010-03-15T14:50:00.603 に答える