0

MSI を使用して、管理者以外のユーザーの dll (ActiveX) を登録しようとしています。レジストリ設定を作成するために、dll を管理モードで登録し、関連するレジストリ エントリをエクスポートして、すべての HKLM を HKCU に名前変更しました。

管理者以外のユーザーにインストールすると、すべて正常に動作します。しかし、管理者ユーザーで同じ設定を使用すると、TypeLib の検出に問題が発生します。

HKCU で登録を行う場合、管理者と非管理者の両方のユーザーが機能するようにするには、レジストリ エントリで何を変更する必要がありますか?

ありがとうございました

4

1 に答える 1

0

あなたのエントリが実際に HKCU に登録されている場合、それは機能します。どの MSI インストーラーを使用していますか? ユーザーモードでインストールするように指定する方法が必要です。

dll を自己登録させていますか、それとも msi に dll を登録させていますか? MSI に実行させるのがベスト プラクティスですが、それは面倒です。.dll を自己登録している場合は、DLL が HKEY_LOCAL_MACHINE ではなく HKEY_CURRENT_USER に登録されていることを確認する必要があります (ATL は既定で登録します)。

ATL を使用して VS2008 でビルドした場合は、次を追加する必要があります。DllRegisterServer AtlSetPerUserRegistration(true); と DllUnregisterServer に。

とにかく、それらは探すべきいくつかのものです。Process Monitor を使用して Reg コマンドを監視し、何が起こっているかを正確に確認できます。どこかで何かが HKLM に書き込んでいます。

于 2010-02-17T18:13:11.577 に答える