我正在使用 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 reserved, Object& ppunk) 在 System.Runtime.InteropServices.Marshal.GetActiveObject(String progID)
抛出异常的代码如下:
DTE dte = (DTE) Marshal.GetActiveObject("VisualStudio.DTE");
我的问题是:我使用的代码通常有什么问题或关键吗?而且,也许有人知道 Visual Studio 或运行它的机器可能出了什么问题。
我已经运行了可以在(Marshal.GetActiveObject() 在 C# 中引发 MK_E_UNAVAILABLE 异常)上找到的代码示例,我的 Visual Studio 实例在 ROT 中是可见的。
最好的祝福