Office 2013でMicrosoft.Office.Interopアセンブリを使用できますか?
-
21-12-2019 - |
質問
私は、古いプロジェクト(.NET 2)をVisual Studio 2013にインポートしなければなりませんでした、それはマイクロソフトのプライマリインターポップアセンブリを利用します。
Visual Studioは、プロジェクトへの参照を追加する必要があると述べた。今、私は何人かの読書をしました、そして明らかにマイクロソフトはOffice 2010のためのPIAをリリースしましたか?(私はOffice 2013を持っています)
今私が知りたいことです。
- Office 2013と仕事をすることができ、下位互換性がありますか?
- そしてもしそうなら、これは未来のために行くための良いルートですか?それは互換性がありますか?
.Net 2
(最新の)が必要なので、Windows 8には4.5が付属しており(デフォルトで)、ほとんどの新しいコンピュータがOffice 2012または2013を持つことになっています。
解決
PIASは過去のアーティファクトで、古い.NETバージョン(V4の前)によってのみ必要です。彼らは、「いいえPIA」機能としても知られている「埋め込み相互撮影型」機能に徹底的かつ優雅に置き換えられてきました。 Visual Studio 2010以降、参照アセンブリを選択すると、プロパティウィンドウに戻ってください。それはデフォルトでTrue
になります。基礎となるテクノロジをカバーする良いビデオはここで入手可能
マイクロソフトがOffice 2013のPIASを公開していない理由は、代わりに相互コップタイプを埋め込むことを期待しています。
特徴は非常に望ましいので、顧客は自分のマシンにPIASをインストールし、あなたのインストーラに含めることを避けてください。問題を解決すると、その問題を解決しない場合は、完全に一般的なMISHAPです。さらに、オフィスのPIASは非常に大きく、相互コップの種類を埋め込むという大きな利点は、アセンブリに実際に使用する型のみを含むことです。多くのメガバイトが数キロバイトに減少しました。
ワークフローは少し異なります。 [参照ダイアログの追加]ダイアログ[.NET Framework]タブで、Microsoft.Office.Interop
アセンブリへの参照を追加する代わりに、COMタブを使用します。そして、Excelを使用するプログラムの相互コップタイプを生成するための「Microsoft Excel 15.0 Object Library
」を選択します。以前にPIASを使用した古いプロジェクトをロードすると、それらの参照アセンブリを削除してCOMタブからそれらを追加するだけです。
あなたが実際にあなたのDev Machineにインストールしたことがない古いバージョンのオフィスを意図的にターゲットにしている機能が失われたことに注意してください。その場合は、そのバージョンのPIAが必要である場合は、[プロパティ]ウィンドウで埋め込み相手タイプをTRUEに強制します。実際にこれを行うことは疑問にあります。マイクロソフトには、新しいオフィスバージョンが古いバージョンと完全に互換性があることを維持するのに苦労しています。彼らは今15年間それを維持しましたが、それは蒸気を使い果たしていました。最悪のシナリオはあなたのマシンにインストールされているよりも新しいバージョンをターゲットにしています。
あなたのコードを修正するためにあなたのコードを修正する必要があることに注意してください。 Synthetic "AccessViolationException
"クラスは埋め込まれていません。 "XxxxClass
"インタフェースだけです。 new ステートメントから「Xxxx
」という単語を削除するだけです。
他のヒント
Office 365と2015コミュニティ - COMオブジェクトからの追加が機能しない理由で何でもよい。解決策はGACに入り、インターポップアセンブリを見つけ、それらをTEMPディレクトリにコピーしてから、任意のDLLのようにプロジェクトに追加します。
また、わからない場合は、Windows 8には古いバージョンの.NET Frameworkがありますが、デフォルトではインストールされていません。プログラム機能に移動します---> Windows ---->に機能を追加し、最初のチェックボックスは.NET 3.0と2.0である必要があります。注意WSUSサーバー上にある場合は、Windows Update Serverからファイルを把うようにWindowsに指示する必要があります。それが役立つことを願っています!
公式に、オフィスのためのPIAの下位互換性はありません。実際にはうまくいきます。
下位互換性のため、私は数年後にOffice XPのPIAを使用していて、Office XP、2003,2007および2010(2013ではまだテストされていない)とWindows XP、Vista、7,8では大丈夫です。
Windowsの異なるバージョンとの互換性は、.NET Framework 3.5を使用しています。
将来のために...それはあなたがPIAで何をしていることから異なります。可能であれば、開いているXMLファイルを直接処理すること、またはWord / Excelのアドインを作成することをはるかに高くています。
Visual Studio 2013 Expressには、もうオフィスサポートがないことがわかりました。それで、あなたはそれを仕事をするために少なくともプロバージョンが必要です。