Officeプライマリ相互運用機能アセンブリ

Visual Studio で Visual Studio Tools for Office(以下 VSTO) のプロジェクトを作成する場合、インストールの順番に気をつけないと、VSTOのプロジェクトがデバッグ・実行出来ないことがあります。

これは、Microsoft Office アプリケーションのCOMベースのオブジェクトモデルとマネージド コードを相互運用出来るように橋渡しをしてくれる、プライマリ相互運用アセンブリ(以下 PIA) がインストールされていないために起きる現象です。

PIAは、Microsoft Office からインストール出来るのですが、.NET Framework がインストールされていない環境にOfficeをフルインストールしたとしても、インストールがスキップされてしまいます。このようにPIAがインストールされていない環境で、アプリケーションレベルのプロジェクトを作成し、デバッグ・実行するとエラーが起きてしまいます。

実際、私もVisual Studio 2008 のテストを実施している時に、先にOffice をインストールした環境でこの現象に遭遇し、なんでデバッグできないの?バグ?などと思っていたら単にPIAのインストールを忘れていたなんて事がよくありました。

この問題を回避するには、以下の方法があります。(Office 2007の場合)

1. .NET Framework 3.5をインストールした後にOfficeをフルインストール

2. 既にこの問題に遭遇していたら、コントロールパネルの[プログラムの追加と削除]からOffice の[変更]を選択、[機能の追加/削除]から、対象のOfficeアプリケーションを選択し、[.NET プログラミング サポート]を選んで更新

この問題は、アプリケーションレベルのプロジェクトに対してのみ起こります。ドキュメントレベルのプロジェクトに関しては、プロジェクトを作成すると、Officeのインストーラーが起動し、%WINDOWS%\assembly 以下にPIAを自動インストールしてくれるからです。

従って、別の解決法として、PIAがインストールされていない状態でアプリケーションレベルのプロジェクトでエラーが出た場合でも、ドキュメントレベルのプロジェクトを一回作成することでPIAが自動インストールされ、問題なくデバッグ・実行できるようにすることも出来ます。