1

インストールされている Office のバージョンに応じて、Office 2003 または Office 2007 COM オブジェクトを参照する必要がある Windows フォーム アプリケーション (C# または VB.NET) を作成しています。このシナリオを処理し、実行時に正しい COM オブジェクトを参照する最善の方法は何ですか?

4

2 に答える 2

1

Office 2007 オブジェクト モデルの新しく追加されたオブジェクトとメソッドのいずれかを使用する場合を除き、Office 2003 PIA を参照してビルドしても問題ありません。正しいバージョンの PIA がターゲット システムに展開されていることを確認してください。

この問題を回避する別の方法は、後の PIA への依存を削除することです。Office には高度な下位互換性があるため、アドインが Office 2003 (Office 2003 PIA を使用) で動作する場合は、Office 2007 (Office 2007 PIA を使用) でも動作するはずであると考えて間違いありません。

( Andrew WhitechapelによるPIA を使用しない複数の Office バージョンのアドインから)

それ以外の場合は、Andrew Whitechapel による次のブログ記事をお勧めします。 Office の複数のバージョンに対して 1 つのアドインを作成できますか? (これは Microsoft によって公式にサポートされていないという BIG 警告を参照してください)。

PIA を必要としない別のオプション (これにより展開が非常に簡単になります) は、ComImportを遅延バインディングと共に使用することです。ただし、これは相互運用アセンブリを使用するよりも遅くなりますが、自動化コードが高速パス上にない場合は、これが適切な解決策になる可能性があります。これを実装する方法については、同じブログ投稿に説明があります: PIA を使用しない複数の Office バージョンのアドイン

于 2008-11-25T13:59:12.947 に答える
0

Office のプライマリ相互運用機能アセンブリはこれに役立ちませんか? 本格的に使用する必要がなかったので、確かなことはわかりませんが、使用すると思います。

于 2008-10-01T16:23:52.663 に答える