2

Office 2013 と VS2013 を Windows 8.1 にインストールしました。バージョン 12 の PIA (Office 2007 用) を参照する古いプロジェクトを開くと、VS2013 はバージョン 14 と 15 の PIA のみをインストールするため、参照に含まれていません。

PIA 12 を使い続けたいので、参照を変更したくありません。代わりに、バージョン 12 の PIA を VS2013 に登録したいと思います。どうすればこれを達成できますか?

すでに PIA 再頒布可能パッケージを使用してみましたが、Office 2007 もインストールしないと動作しません (これは望ましくありません)。他のシステムから dll のコピーを取得できますが、これらを Visual Studio 2013 に登録するにはどうすればよいですか (GAC では必要ないと思いますが、VS2013 だけです)。

PIA について知っている限り、いくつかの COM クラス ID を記録する必要があります。

編集:

現在、PIA dll は、名前と指紋/公開キー (ヒント パスなし) だけで参照されています。VS2013 で参照パネルを開くと、それらが表示され、選択して機能することができます。VS2013がそれらを見つけることができるように、それらはどこかに登録されているようです。これを他のコンピューターに複製したいだけです。

4

1 に答える 1

4

Windows 8.1 と Office 2013 のみがインストールされたマシンという、まったく同じセットアップがあります。Office 2007 PIA をインストールするのにまったく問題はありません。これは 2 段階のプロセスであることに注意してください。Microsoft サーバーから PrimaryInteropAssembly.exe をダウンロードして起動すると、中間ファイルを保存するディレクトリを指定するように求められます。そのディレクトリに移動し、o2007pia.msiファイルを右クリックして [インストール] を選択し、実際に登録します。

それらをマシンに取り込む唯一の方法ではありません。PIA がインストールされた別のマシンがある場合は、ダミー プロジェクトを作成し、必要な Microsoft.Interop アセンブリへの参照を追加します。それらを選択し、[Embed Interop Types] プロパティが False に設定され、[Copy Local] プロパティが True に設定されていることを確認します。プロジェクトをビルドすると、相互運用アセンブリが bin\Debug ディレクトリに取得されます。それらをマシンにコピーし、[参照] ボタンを使用してそれらへの参照を追加します。ユーザーのマシンにPIAを展開する必要がないように、実際のプロジェクトでは常に「Embed Interop Types」プロパティをTrueに設定する必要があります。それらをプロジェクトにチェックインして、再び失わないようにします。


更新: .NET 4.0 および VS2010 以降、PIA は廃止されました。詳細については、この投稿を確認してください。

于 2013-12-26T16:46:59.310 に答える