現在オフラインです。再接続するためにインターネットの接続を待っています

アプリケーションをアンインストールしても、GAC に COM+ のアセンブリ情報が残ってしまう

現象
以下の手順にて .NET Framework を利用して開発した COM+ アプリケーションをインストールし、その後にこのアプリケーションをアンインストールします。そのあと、改めて COM+ アプリケーションをインストールしようとしても、インストールする手順によっては正常に動作させることができません。
  1. .NET Framework を利用して COM+ アプリケーションを開発します。
  2. コンポーネント サービス管理ツールを使用して、開発した COM+ アプリケーションをインストールします。
  3. 同様に、コンポーネント サービス管理ツールから、インストールした COM+ アプリケーションをエクスポートします。 
  4. エクスポートによって作成されたインストール パッケージ (MSI) を目的の PC にコピーして実行し、アプリケーションをインストールします。
  5. 不要になった際に、アプリケーションをアンインストールします。
この状態から、同一の .NET Framework を利用して開発した COM+ アプリケーションを、RegistrationHelper.InstallAssembly メソッドや regsvcs.exe などを使用して COM+ アプリケーションをインストールしても、正常に動作しない状態となります。


原因
エクスポートによって作成されたインストール パッケージは、MSIからインストールする際にはグローバル アセンブリ キャッシュ (GAC) にアセンブリを登録します。しかしながら、アンインストール時には .NET Framework を利用したアプリケーションであることを正しく認識できず、 GAC から COM+ アプリケーションのアセンブリ情報を削除しません。この状態から、改めて RegistrationHelper.InstallAssembly メソッドや regsvcs.exe などを使用して COM+ アプリケーションを インストールしても、GAC に残っている古い情報が参照されるため、新たにインストールした COM+ アプリケーションのアセンブリが使用されず、期待する結果が得られなくなります。


解決方法
再度アプリケーションをインストールする前に、GAC に残っているアセンブリ情報を削除しておくことにより、本現象を回避することが可能です。
  1. スタート ボタンから [ファイル名を指定して実行] を選び、名前に「%windir%\Assembly」を入力して [OK] をクリックします。
  2. エクスプローラーが開き、アセンブリの一覧が表示されるので、アンインストールしたいアセンブリ名を探します。
  3. アセンブリ名が見つかったら、アセンブリ名の上で右クリックしてオプション メニューを表示し、[アンインストール] を選びます。 

状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2863033 - 最終更新日: 09/20/2016 10:25:00 - リビジョン: 2.0

Microsoft .NET Framework 3.5 Service Pack 1

  • kbdevelopment kbdeployment kbcomponentdevelopment KB2863033
フィードバック