1

32 ビット MMC スナップインで問題が発生しています (x64 サーバー 2008 マシン上)。スナップインが正常に登録されました。mmc (32 ビット オプション) を使用して associated.msc ファイルを起動すると、スナップインの名前が LHS に表示されますが、RHS には、ページを読み込めないというエラー ページが表示されます。

procmon を使用して、問題が、製品と共に出荷され、スナップインによって使用される DLL を見つけられないことに関連していることを特定したと思います。これはディレクトリ c:\\bin にあり、このディレクトリは PATH 環境変数で指定されます。ただし、MMC は c:\windows\sysWOW6432 ディレクトリ (つまり、64 ビット マシン上の c:\windows\system32 の 32 ビット バージョン) のみを参照しているようです。PATH で指定された他のディレクトリ (c:\\bin ディレクトリを含む) も検索し続けたとしても、私はこれを気にしません。

私はこの仮説をテストし、DLL を syswow6432 ディレクトリに配置しましたが、そこからは正しく動作するようです。

すべての製品固有の DLL をシステム ディレクトリに配置したくないのは明らかであり、それらを製品固有のディレクトリ内に保持したいと考えています。

PATH で DLL を見つけられなかった理由と解決方法を説明できる人はいますか。

4

1 に答える 1

0

依存アセンブリを登録するときに/codebaseオプションを使用します。RegAsm.exeスナップインが MMC スナップイン ツリーから選択されたときに遅延ロードされるアセンブリへの完全修飾パスを指定できます。

64 ビット MS オペレーティング システムでは、 が存在しない場合、/codebase32 ビット スナップインの依存アセンブリ/DLL はSYSWOW64ディレクトリからロードされ、64 ビット スナップインは依存アセンブリ/DLL をsystem32ディレクトリからロードします。 PATH式には当てはまらないようですが、代わりに、gacutil.exeSYSWOW64 を汚染する GAC バイスに依存アセンブリをインストールするために使用することもできます。

于 2012-06-20T16:39:16.023 に答える