我正在使用一些测试代码来创建Visio文档。我在Window 7 64位上使用Visual Studio 2010。当我运行我的程序并尝试在程序中创建新的Visio应用程序对象时,我得到以下异常:
由于以下错误,检索CLSID为{00021A20-0000-0000-C000-000000000046}的组件的COM类工厂失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))。
以下是导致异常的代码:
Visio.Application va = new Microsoft.Office.Interop.Visio.Application();
我验证了项目设置是构建一个32位应用程序。我已经跟踪它回到64位Windows无法加载32位.COM Visio dll。我尝试使用regsvr32注册dll,但收到错误消息,指出找不到入口点DLLregisterserver。 MDSN表示这意味着该文件不是有效的.dll。无论如何,我试图从Visual Studio库中注册Microsoft.Office.Interop.Visio.dll。有没有解决这个问题?是否有64位版本的.COM库?
答案 0 :(得分:0)
关注this link。本页介绍了如何在32位系统上安装dll,尽管您使用的是64位系统
您可以在路径上的64位系统上找到32位版本的REGSVR32--%systemroot%\ SysWoW64 \ regsvr32.exe。
WoW =代表Windows上的Windows
答案 1 :(得分:0)
您尝试加载的Interop程序集取决于本机Visio DLL。为了在进程中加载这些DLL,它们需要匹配您的进程位数。
因此,您需要安装32位Visio。