c# - 将 vs 2012 C# 与 visio 2007 集成时出现 Com 错误

标签 c# .net automation visio

我正在尝试将 Visio 2007 与 C#(VS 2012 和 Windows 7 操作系统)集成,但在运行代码时出现错误

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

代码片段:

使用 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";

我在我的机器上安装了 Microsoft office 2010 和 Visio 2007。

引用库: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/

相关文章:

powershell - 为自动电子邮件脚本存储帐户凭据(尤其是密码)的最佳方式是什么?

python - 输入重复代码(Python)

c# - ThreadAbort异常

c# - VSTO Outlook 集成 - 用于同步的 Outlook 关闭事件

c# - 多线程访问 System.Collection.Concurrent 中的非线程安全值?

c# - 通知编译器变量可能从另一个线程更新

javascript - 为移动应用柏树或鸦片测试自动化工具之间有何更好的选择?

c# - OleDbParameterCollection 没有定义构造函数

c# - Base64转换后如何释放内存

javascript - 拒绝加载脚本 'https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js'