我正在尝试将Visio 2007与C#(VS 2012和Windows 7 OS)集成,但是在运行代码时遇到错误

无法将类型为“ Microsoft.Office.Interop.Visio.ApplicationClass”的COM对象转换为接口类型为“ Microsoft.Office.Interop.Visio.IVApplication”。该操作失败,因为对IID为“ {000D0700-0000-0000-C000-000000000046}”的接口的COM组件上的QueryInterface调用由于以下错误而失败:库未注册。 (来自HRESULT的异常:0x8002801D(TYPE_E_LIBNOTapped))。

程式码片段:

使用IVisio = Microsoft.Office.Interop.Visio;

内部方法

 var app = new IVisio.ApplicationClass();
        var docs = app.Documents;  (Error coming at this point)
        var doc = docs.Add("");

        var page = app.ActivePage;
        var shape0 = page.DrawRectangle(1, 2, 6, 3);
        shape0.Text = "Hello World";


我的计算机上装有随Visio 2007一起安装的Microsoft Office 2010。

参考库:Microsoft.Office.Interop.Visio(尝试使用Microsoft Visio 12类型库版本4.12.0.0(visio 2007)和版本14.0.0.0(visio 2010),但出现相同的错误。)

最佳答案

我删除了Office 2010和visio 2007,重新启动了计算机,然后再次安装了Office 2010和visio 2007软件。

除此以外,我一直在寻找其他解决方案。

关于c# - 将vs 2012 C#与visio 2007集成时出现Com错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18332659/

10-11 17:15