2

Word で文字を自動生成する C# で記述された WinForms アプリケーションがあります。アプリケーションは、Office 2010 がインストールされているクライアント マシンでは正常に動作しますが、Office 2007 がインストールされているクライアント マシンでは動作しません。代わりに、次のエラー メッセージが表示されます -

could not load file or assembly 'Microsoft.Office.Interop.Word version=14.0.0

Interop.Word の古いバージョン (バージョン = 12 など) への参照を追加する必要があると思われますが、Visual Studio 経由で使用できる参照のリストにそのようなオプションはありません。

古いリファレンスが必要であるというのは正しいですか? もしそうなら、どこでこれを見つけることができますか?

または、他に検討する必要がある場合は、アドバイスをお願いします。

4

2 に答える 2

6

.NET Framework 4.0 は、組み込みの Primary Interop Assemblies (PIA) をサポートしていることに注意してください。「Embed Interop Types」を「True」に設定することにより、Microsoft.Office.Interop.Word リファレンスで有効にすることができます。
詳細については、 http://msdn.microsoft.com/en-us/library/dd997297 (v=vs.100).aspx を参照してください。

Office の複数のバージョンをサポートするもう 1 つの方法は、次のようなライブラリを使用する こと
です。

于 2012-11-14T17:45:29.710 に答える
0

はい、Office 2007 と Office 2010 の両方に対して機能するため、2007 PIA を参照する必要があります。一般に、サポートする Office の最も古いバージョンの PIA を参照する必要があります。

Office 2007 PIA は、ここからダウンロードできます。

MSDNから:

Office PIA をグローバル アセンブリ キャッシュにインストールして登録すると (Office を使用するか、PIA の再頒布可能パッケージをインストールして)、バインディング リダイレクト アセンブリもグローバル アセンブリ キャッシュにのみインストールされます。これらのアセンブリは、プライマリ相互運用機能アセンブリの正しいバージョンが実行時に読み込まれるようにするのに役立ちます。たとえば、2007 Microsoft Office プライマリ相互運用機能アセンブリを参照するソリューションが、同じプライマリ相互運用機能アセンブリの Microsoft Office 2010 バージョンを持つコンピューターで実行される場合、バインディング リダイレクト アセンブリは、.NET Framework ランタイムに Microsoft Office 2010 バージョンを読み込むように指示します。プライマリ相互運用アセンブリの。

于 2012-11-14T16:53:49.640 に答える