由于代码签名证书,我必须在管理员模式下运行 Visual Studio。除了调试我的 WinForms 应用程序时,一切都很好。调用 Excel (Microsoft.Office.Interop.Excel) 引发异常:
m_excelApp = new Excel.Application();
System.Runtime.InteropServices.COMException: '检索具有 CLSID {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂由于以下错误而失败:80040154 类未注册(异常来自 HRESID 为REGDB_E_CLASSNOTREG)).'
因此,我无法测试应用程序的特定部分。
当然,如果我删除证书并以非管理员身份运行 VS,则一切正常。同样,该代码也适用于已发布的可执行文件(这是一个“ClickOnce”应用程序,因此我无法测试它是否适用于管理员模式)。
我想我必须在某个地方指定 Excel 可执行文件也应该在管理员模式下启动。