转: [开发笔记]-“在引用COM组件时,出现了没法嵌入互操做类型。。。”的错误

转自:  https://www.cnblogs.com/babycool/p/3838204.html

随笔 - 113  文章 - 0  评论 - 410

 

 

 

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

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

  先从Com组件中添加引用:网络

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

  将“嵌入互操做类型”改成 False 选项:htm

 

从新编译,程序正常运行。blog

 

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

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

  导入Com组件中的Office库:图片

 

  直接运行会报错,“没法嵌入互操做类型”等等之类的错误:开发

  打开 “属性” 对话框:

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

 

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

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

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

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

 

参考:VS2010中出现没法嵌入互操做类型

转载请注明出处。

相关文章
相关标签/搜索