Office 2003 プライマリ相互運用アセンブリ (PIA)

Office 2003 スマート タグ SDK

Office 2003 プライマリ相互運用アセンブリ (PIA)

Office 2003 プライマリ相互運用アセンブリ (PIA) は、正常にインストールされていれば、<ドライブ名>:\WINDOWS\assembly または <ドライブ名>:\WINNT\assembly にあるグローバル アセンブリ キャッシュ (GAC) 内にインストールされています。たとえば、スマート タグ PIA が GAC にインストールされていれば、GAC には Microsoft.Office.Interop.SmartTag, version 11.0.0.0, public key token 71e9bce111e9429c と表示されます。このように表示されない場合は、PIA が何らかの理由でうまくインストールされていないということです。

メモ  PIA の詳細については、「プライマリ相互運用アセンブリ (PIA) と相互運用アセンブリ (IA)」を参照してください。

Office 2003 PIA の入手場所と入手方法

.NET Framework v1.1 が必要です。Office 2003 をインストールする場合、.NET Framework v1.1 がインストールされていないと PIA はインストールされません。また、PIA をインストールするためのオプションが Office のカスタム セットアップに表示されません。.NET Framework v1.1 がインストールされていれば、オプションのリストには [.NET プログラミング サポート] などが表示されています。

Office 2003 の完全インストールを実行すれば PIA は自動的に GAC にインストールされるので、完全インストールを行うことを強くお勧めします。標準インストールでは、PIA は要求時にインストールされます。

メモ  開発作業を行っている場合、PIA が必要な場合は Office 2003 を標準インストールしないようにします。Visual Studio .NET と Visual Studio 2003 には、PIA を標準インストールの要求時にインストールするように設定したり、カスタム インストールで初めて実行するときにインストールするようにすると、Office COM 型ライブラリを参照したときに相互運用アセンブリ (IA) を取得してしまうという既知のバグが存在しているからです。この問題を回避するには、開発作業を開始する前に、参照する必要のある Office 2003 PIA を GAC にインストールしておくようにします。ただし、開発作業を実行する必要のないエンド ユーザーのコンピュータには、Office 2003 を標準インストールしても問題ありません。

Office 2003 のインストール後に .NET Framework v1.1 をインストールする場合、このインストール後に PIA を取得するには、Office セットアップを再実行する必要があります。

1. 次に、[機能の追加または削除] を選択し、[次へ] をクリックします。

2. [アプリケーションごとにオプションを指定してインストール] チェック ボックスをオンにして、[更新] をクリックします。

3. [Office Tools] ノードを展開し、 [スマート タグ .NET プログラミング サポート] を選択してスマート タグ PIA を取得します。[マイ コンピュータから実行] が選択されていることを確認します。[初めて実行するときにインストール] を選択しないでください。

4. 他の Office 2003 アプリケーションに固有の PIA をインストールには、その特定のアプリケーションのノードを展開し、[.NET プログラミング サポート] を選択してアプリケーション固有の PIA をインストールします。ここでも、[マイ コンピュータから実行] が選択されていることを確認し、[初めて実行するときにインストール] を選択しないようにします。

スマート タグ PIA やアプリケーション固有の PIA を参照する方法

1. Visual Studio .NET または Visual Studio 2003 で .sln ファイルを開きます。

2. [ソリューション エクスプローラ] で、[参照設定] ノードを展開します。

3. [参照設定] を右クリックして、[参照の追加] をクリックします。[参照の追加] ダイアログ ボックスが開きます。

4. [COM] タブをクリックします。

5. [コンポーネント名] リストをスクロール ダウンして、[Microsoft Smart Tags 2.0 Type Library] を表示させます。これを強調表示して [選択] をクリックします。 同じダイアログ ボックスの [選択されたコンポーネント] リストにこの項目が表示されます。

6. [OK] をクリックします。[ソリューション エクスプローラ][参照設定] ノードに "SmartTagLib" が表示されるようになったことを確認します。

7. "SmartTagLib" を強調表示させてプロパティ ウィンドウでプロパティを見てみると、[ローカル コピー ] プロパティは "False" に設定されているはずです。また、[パス] プロパティには GAC 内の場所が示されています。ここにはバージョン番号 11.0.0.0 も含まれます。Windows XP オペレーティング システムの場合、次のように表示されます。

C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.SmartTag\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.SmartTag.dll

8. 他の Office 2003 タイプ ライブラリに参照を追加するには、手順 3 ~ 7 を繰り返します。手順 5 では適切なアプリケーション タイプ ライブラリを選択します。

PIA を正しく参照しているかどうかを確認するには

正しく参照したことを確認するには、"SmartTagLib" の [ローカル コピー] プロパティが "False" になっており、Windows XP を実行するコンピュータであれば [パス] プロパティが次のように表示されているかどうか確認します。

C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.SmartTag\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.SmartTag.dll

[プロパティ] ウィンドウで [ローカル コピー] プロパティが "True" に設定されていると、ソリューションは PIA ではなく相互運用アセンブリ (IA) を参照します。

最適な方法は、常に公式の PIA を使用することです。そこで、IA を削除してもう一度参照します。IA を削除するには、IA を右クリックして [削除] をクリックします。この方法による解決がうまく機能するのは、[初めて実行するときにインストール] ではなく [マイ コンピュータから実行] オプションによってインストールを実行したか、完全インストールを実行した場合のみです (理由は上記の「 Office 2003 PIA の入手場所と入手方法」を参照)。GAC 内に Office 2003 PIA が存在することがわかっているのに、なぜか PIA ではなく IA を取得している場合は、何らかのタイプ ライブラリ登録によって固有の PIA 登録が破壊されてしまった可能性があります。

これを修正するには、次のいずれかを実行します。

1. Office の修復を行う。

2. 影響を受けている PIA を再インストールする。これを実行するには、Office セットアップを再実行します (Office 2003 PIA のカスタム インストールの方法は「 Office 2003 PIA の入手場所と入手方法 」を参照)。

3. RegAsm を実行してその特定の PIA を GAC から再登録します。たとえば、スマート タグ PIA の RegAsm は次のようになります (SmartTagLib PIA の名前空間は Microsoft.Office.Interop.SmartTag です)。

  %systemroot%\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe %systemroot%\assembly\GAC\Microsoft.Office.Interop.SmartTag\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.SmartTag.dll


Office PIA の RegAsm は次のようになります (Office PIA の名前空間は Microsoft.Office.Core です)。

  %systemroot%\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe %systemroot%\assembly\GAC\Office\11.0.0.0__71e9bce111e9429c\Office.dll


VBIDE PIA の RegAsm は次のようになります (VBIDE PIA の名前空間は Microsoft.Vbe.Interop です)。

  %systemroot%\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe %systemroot%\assembly\GAC\Microsoft.Vbe.Interop\11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.dll


正しい PIA の参照に関するこのような確認は、他の Office PIA にも適用できます。

展開

ソリューション セットアップ パッケージによって Office 2003 PIA が再配信されることは絶対にありません。Office 2003 だけが唯一の Office 2003 PIA 配信メカニズムです。Office 2003 PIA は、完全インストール、標準インストール、またはカスタム インストールによって、自動的に GAC にインストールされたり、エンド ユーザーのコンピュータに要求時にインストールされたります。

セットアップには PIA を含まないようにします。セットアップ プロジェクトに Office 2003 PIA が含まれていると、エンド ユーザーのコンピュータの Office 2003 の所有権や PIA コンポーネントの登録が壊れてしまう恐れがあります。これによって、アンインストール時にエンド ユーザーのコンピュータから PIA が誤って削除されてしまう可能性があります。

たとえば、ユーザーがセットアップ パッケージをインストールすると、セットアップ内にパッケージされた Office 2003 PIA によって、既にインストール済みのコンポーネントの登録が上書きされてしまいます。そしてユーザーがソリューションをアンインストールするとこれらの PIA 登録が壊れてしまい、ユーザーのコンピュータは、これらのコンポーネントに対して .NET プログラムがサポートされない状態になってしまいます。

メモ  Visual Studio .NET および Visual Studio 2003 のセットアップ プロジェクトでは、通常、セットアップ パッケージ内にいくつかの PIA が自動的に含まれます。したがって開発者は、これらのセットアップ パッケージから Office 2003 PIA を排除する必要があります。

stdole.dll、adodb.dll、および msdatasrc.dll の PIA

Office XP と異なり、stdole.dll、adodb.dll、および msdatasrc.dll の PIA が Office 2003 に含まれています。したがって、すべての Office 2003 PIA と同じで、開発者が再配信してはいけません。

最小のインストールで取得される PIA

.NET Framework v1.1 が存在している場合、Office 2003 を標準インストールまたは最小インストールすると、既定では次の 5 つの PIA がインストールされます。

Stdole.dll

Adodb.dll

Msdatasrc.dll

Microsoft.Vbe.Interop.dll

Office.dll

また、Access または Office Web Components 2003 がインストールされていれば、最小インストールで mscomctl PIA も使用できるようになります。