3

Visual Studio 2012 を使用しています

既存のコードからコードを生成するために、プロジェクト内に T4 テンプレートがあります。そのために、Visual Studio Env.DTE-API を使用します。上記と同じエラーが単純なコンソール アプリケーションでスローされるため、プロジェクト内で問題になることはありません。

数週間、すべて正常に動作します。

今日、私は例外を除いて時々直面しています。同じプロジェクトが魅力のように同僚のマシンで実行され、例外はありません。

これは、プロジェクト自体ではなく、私の Visual Studio または私のマシン全般で何かがこの例外を引き起こしているという仮定につながります。

例外は次のようになります(少しカットしました):

エラー 7 実行中の変換: System.Runtime.InteropServices.COMException (0x800401E3): Vorgang nicht verfügbar. (HRESULT からの例外: 0x800401E3 (MK_E_UNAVAILABLE)) System.Runtime.InteropServices.Marshal.GetActiveObject (Guid& rclsid、IntPtr 予約済み、Object& ppunk) で System.Runtime.InteropServices.Marshal.GetActiveObject(String progID)

例外がスローされるコードは次のようになります。

DTE dte = (DTE) Marshal.GetActiveObject("VisualStudio.DTE");

私の質問は次のとおりです。一般的に、使用するコードに何か問題や重大なことはありますか? また、Visual Studio またはそれを実行しているマシンの何が問題なのか、誰かが考えているかもしれません。

( Marshal.GetActiveObject() throws MK_E_UNAVAILABLE exception in C# ) にあるコード サンプルを既に実行しました。Visual Studio インスタンスが表示され、ROT に表示されます。

よろしくお願いします

4

1 に答える 1

3

昇格された特権で実行されているプロセスが、昇格された特権なしで実行されているプロセスへのインターフェイスを取得しようとすると、一貫してこのエラーが発生することが観察されています。

于 2013-10-27T23:52:02.170 に答える