1

Outlookを次のように自動化しようとしています

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();    
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");

2行目で次の例外を取得します。GetNamespace

タイプ 'Microsoft.Office.Interop.Outlook.ApplicationClass' の COM オブジェクトをインターフェイス タイプ 'Microsoft.Office.Interop.Outlook._Application' にキャストできません。IID '{00063001-0000-0000-C000-000000000046}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーのために失敗したため、この操作は失敗しました: No such interface supported (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .

と を使用.Net Framework 4してOutlook 2013います。

これが唯一の解決策ですか?レジストリに変更を加えないようにしています。

編集

これで問題は解決しませんでした。

編集 参照されているライブラリがOffice 15で、インストールされているライブラリが10または12の場合、機能しますか?

4

10 に答える 10

3

私は何日もこの問題に悩まされてきました。これは私のために働いた:

Outlook 2013 が 64 ビットであることに気付きました...そして、私の C# アプリの [プロジェクト プロパティ] -> [任意の CPU] をプラットフォーム ターゲットとしてビルドし、[32 ビットを優先] にチェックマークを付けました。

プラットフォーム ターゲットを x64 に変更したところ、うまくいきました。

于 2016-08-31T15:39:12.267 に答える
2

この例外は通常、2 つのバージョンの Office をインストールしてから 1 つをアンインストールした場合に発生します。まだインストールされている Office の修復インストールを実行すると、レジストリ キーが修正されます。

于 2013-09-04T06:21:00.813 に答える
0

過剰な 9.5 フィールドがなかったため、9.5 バージョンの修正は機能しませんでした。

私の場合、問題は、Outlook 2010 にダウングレードしたときに、インストール場所を変更した (つまり、既定の ProgramFiles フォルダーではない) ことでした。ただし、Windows は 'HKEY_CLASSES_ROOT\TypeLib{00062FFF-0000-0000-C000-000000000046}\9.4\0\win64' の値を適切に更新しませんでした。

値を手動で更新し、正しい場所を指すようにした後、問題は解決されました。

于 2015-02-14T18:46:20.303 に答える
-1
   //DECLARE
    Microsoft.Office.Interop.Outlook.Application app = null;
    Microsoft.Office.Interop.Outlook.NameSpace ns = null;

  //INITIALISE
    app = new Microsoft.Office.Interop.Outlook.Application();
    ns = app.Session;
于 2014-12-17T10:32:51.587 に答える