6

Office がインストールされておらず、今後もインストールされないサーバーでアプリケーションを実行しようとしています。

using EXCEL = Microsoft.Office.Interop.Excel;
...
EXCEL.Application app = new EXCEL.Application();//Exception thrown here

コードは自分のシステムでは正常に機能していますが、サーバーでは次の例外が発生します。

Unhandled Exception: System.Runtime.InteropServices.COMException: 
Retrieving the COM class factory for component with CLSID {...} failed
due to the following error: 80040154 Class not registered
(Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

どちらのシステムも 32 ビットで、アプリケーションの exe の横に Excel Interop dll をコピーしました。O2010PIAもインストールしました。

リードはありますか?

4

2 に答える 2

11

Office相互運用機能アセンブリはランタイム呼び出し可能ラッパー(RCW)であり、公開するCOMAPIを介してシステムにインストールされているOfficeのコピーと相互運用できます。

エラーメッセージは、Excelがインストールされていないことを示しています。これはまさに私が期待していることです。Officeのないマシンで相互運用機能アセンブリを使用することはできません。

于 2012-12-01T16:52:54.733 に答える
3

Office がインストールされておらず、今後もインストールされないサーバーでアプリケーションを実行しようとしています。

Joe が言ったように、Interop を機能させるには Excel をインストールする必要があります。あなたがそれに反対している場合は、サードパーティの代替案を検討してください。一般に、Microsoft はサーバーに Office をインストールして Interop で使用することをお勧めしていません

于 2012-12-01T16:55:44.607 に答える