“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误

  这两天在做一个需要将wps文档转换成word文档的程序,在调用wps的com组件时项目编译是没有问题的,但当运行的时候却弹出了下面的错误提示:

从网上百度一番后,找到了正确的解决方法。 

  先从Com组件中添加引用:

  选中引入的Com组件库,右键-> 属性:

  将“嵌入互操作类型”改为 False 选项:

 

重新编译,程序正常运行。

 

  由此,让我联想到了在前不久一个朋友在使用Office组件用来转换pdf文档时,出现的 “无法嵌入互操作类型。。。”的问题,记得当时他的处理方法是按照网上说的教程,设置程序获取最高的管理员权限,添加允许等操作来解决的,虽说最终程序是可以运行了,但配置起来还真是相当的麻烦呢。

  而正确的方法应该是这样的。调用Office文档时:(以下图片来源于网络)

  导入Com组件中的Office库:

 

  直接运行会报错,“无法嵌入互操作类型”等等之类的错误:

  打开 “属性” 对话框:

  将 “嵌入互操作类型” 设置为 False:

 

  何为 “嵌入互操作类型” ???

  1. ”嵌入互操作类型”中的嵌入就是引进、导入的意思,类似于c#中using,c中include的作用,目的是告诉编译器是否要把互操作类型引入。

  2. “互操作类型”实际是指一系列Com组件的程序集,是公共运行库中库文件,类似于编译好的类,接口等。

  3. “嵌入互操作类型”设定为true,实际上就是不引入互操作集(编译时候放弃Com程序集),仅编译用户代码的程序集。而设定为false的话,实际就是需要从互操作程序集中获取 COM 类型的类型信息。

 

参考:VS2010中出现无法嵌入互操作类型

时间: 2024-10-23 08:13:10

“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误的相关文章

引用excel组件时,本机上调试没问题,挂到服务器上出错!急急!!!

问题描述 aspx页面的后台代码引用了excel组件(实现excel的导入),在调试程序的时候本机上没问题,可是挂到服务器上(代理服务器)就出错了.错误提示:System.Runtime.InteropServices.COMException(0x80040154):带有CLSID{00024500-0000-0000-C000-000000000046}的COM对象无效或未注册.这个问题已经困扰我好几天了,请各位高手赐教啊!小弟在此先谢过了! 解决方案 解决方案二:dll同时发布了么?解决方

如何用这篇文章解决我们的工程对普通COM组件的引用:《引用ActiveX/COM组件时的Strong Name》

active|activex|解决  CSharp Tips:引用ActiveX/COM组件时的Strong Name     选择自 Mittermeyer 的 Blog  问题DotNet平台下提供了比较完备的类库,但是第一个版本总归不可能面面俱到,而且由于历史遗留问题,经常会和COM/ActiveX的组件之间进行互操作.笔者碰到的问题就是在一个Assembly中调用到了Excel的对象,但是该Assembly需要封装成为一个ActiveX的Control,供IE的客户端脚本调用.简而言之,

检索 COM 类工厂中 CLSID 为 {8E560CFD-2EE5-45D1-9661-0EB708BB58FA} 的组件时失败,原因是出现以下错误: 800

问题描述 检索COM类工厂中CLSID为{8E560CFD-2EE5-45D1-9661-0EB708BB58FA}的组件时失败,原因是出现以下错误:80040154.做网站转移移动到新服务器上调试的时候发生了这个错误请问这是因为什么原因造成的该如何解决? 解决方案 解决方案二:1.服务器版本2.控件未注册建议,1.找到引用COM组件的代码,如果可以使用.net程序集引用2.注册com组件3.程序池启用32位应用程序

Jmail 问题收发邮件报错检索 COM 类工厂中 CLSID 为 {F812B147-0E26-4222-8EE4-9F753CD2B39C} 的组件时失败

问题描述 IISweb服务中调用Jmail错误原因是出现以下错误:80040154,本地测试都能收发邮件!部署到服务器上,已经安装JMail44_pro.exe,服务器是windowsseverR264位的错误如下"检索COM类工厂中CLSID为{F812B147-0E26-4222-8EE4-9F753CD2B39C}的组件时失败,原因是出现以下错误:80040154."把jmail复制到system32下面执行regsvr32.exejmail.dll报错.安装是安装成功的!求大神

检索 COM 类工厂中 CLSID 为 {0002E55D-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 800

问题描述 检索COM类工厂中CLSID为{0002E55D-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误:80070005各位大哥大姐这个是什么原因呢 解决方案 解决方案二:没有安装com解决方案三:添加报错中命名空间提示的那个组件...解决方案四:这个是需要Microsoft.Office.Interop.Owc11的,并且这个owc11我也安装了,但是在DCOM配置中也没有找到关于CLSID为{0002E55D-0000-0000-C000-000

添加删除Windows组件时如果找不到文件,会询问I386路径

添加删除Windows组件时,如果找不到文件,会询问I386路径,该项保存之前的可用路径 保存的是安装光盘的路径,I386的文件夹路径,添加删除Windows组件时,如果找不到文件,会询问I386路径.Installation Sources该项保存之前的可用路径 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup] Installation Sources

引用外部脚本时script标签关闭的写法

在引用外部脚本时,script标签的关闭写法,很多朋友对它保持健忘态度,下面为大家介绍下其正确的写法 在引用外部脚本时,script标签的正确关闭写法如下:   代码如下: <script type="text/javascript" src="js/a.js"></script>    自关闭写法有问题(测试的IE11, chrome 31.0, ff 25.0都不支持):   代码如下: <script type="tex

引入autocomplete组件时JS报未结束字符串常量错误

  在引入jQuery的autocomplete组件时,遇到js报未结束字符串常量错误,原因及解决方法如下,大家可以参考下 就我的问题以及解决办法: 我在引入jQuery的autocomplete组件时,遇到js报未结束字符串常量错误. 原因分析:首先,右击页面查看编码是utf-8, 其次,查看js报错的函数,以及找到对应的函数. 发现原来jQuery.autocomplete.js中的感叹号为中文的即!将其修改为英文的!,出错问题解决.  

引入autocomplete组件时JS报未结束字符串常量错误_javascript技巧

就我的问题以及解决办法: 我在引入jQuery的autocomplete组件时,遇到js报未结束字符串常量错误. 原因分析:首先,右击页面查看编码是utf-8, 其次,查看js报错的函数,以及找到对应的函数. 发现原来jQuery.autocomplete.js中的感叹号为中文的即!将其修改为英文的!,出错问题解决.