这两天在作一个须要将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 类型的类型信息。
转载请注明出处。