0

現在、Windows XP 64 ビット マシンに製品をインストールする作業を行っています。インストールの一部として COM モジュールを登録しようとしています。「RunOnce」(レジストリ) キーにエントリを追加してバット ファイルを起動し、そのバット ファイルから登録を行うことでこれを行っています。

すべての COM dll は正しく登録されていますが、2 つの COM サーバー (.exe) で、依存関係の dll の 1 つを読み込めなかったというエラーが表示されます。しかし、同じ dll が別の COM サーバーと静的にリンクされており、このサーバーは正常に登録されています。

驚くべきことに、同じバット ファイルを直接実行 (ダブルクリック) しても、エラーは発生せず、すべてのアセンブリで問題なく動作します。私は、この動作を示すマシンのみのいくつかのテスト マシンでこれを確認しました。残念ながら、それは顧客のツール マシンではありません。

依存関係のない dll が利用できない問題です。Batファイルを直接実行してすべてのファイルを登録した後、手動でRunOnceにキーを追加してマシンを再起動することで、これを再現できたためです。

追加情報、logmein 経由でこのマシンにリモートでアクセスしています。

正確なエラー メッセージ: 「XXX.dll が見つからなかったため、このアプリケーションは開始できませんでした。アプリケーションを再インストールすると、この問題が解決する可能性があります」.

この XXX.dll は同じパスでは使用できませんが、別のフォルダーにあり、そのパスはパス変数で使用できます。

バットファイルの内容は;

"C:\WINDOWS\system32\regsvr32.exe" RemoteControlHandler.dll

"C:\WINDOWS\system32\regsvr32.exe" ProcPgmHandler.dll

"C:\WINDOWS\system32\regsvr32.exe" GEM300Handler.dll

"C:\WINDOWS\system32\regsvr32.exe" ICEScreenAdapter.ocx

HIB.exe /regserver //エラーをスローします

JobManager.exe /regserver

Cim300Adapter.exe /regserver

GemEquipmentCtrl.exe /regserver //エラーをスローします

この情報が専門家にとって十分であることを願っています。追加情報が必要な場合はお気軽にお問い合わせください。

ニクソン

4

0 に答える 0