首页 » 技术分享 » VS2015下Windows窗体项目引用owc11插件报错解决过程

VS2015下Windows窗体项目引用owc11插件报错解决过程

 

 

因为客户要求,需要做一个引用owc11插件里面Microsoft Office PivotTable控件的小程序。由别人做完后在我打开项目的时候,遇到了问题。

首先是关于.NET框架的错误

加载之后打开窗体的设计器,报错“未能解析目标框架“.NETFramework,Version=v3.5”的 mscorlib。如果未安装目标框架或框架名字对象的格式不正确,则会出现此情况。 ”

然而我的系统是win10,win7以上自动安装.NET3.5的框架,按理来说不应该出现这种错误。

按照网上搜到的方法逐个实验:

方法1.控制面板——>程序——>程序和功能——>启用或关闭Windows功能——>.NET Framework 3.5(包括 .NET 2.0 和3.0),将其下属的两个激活全部勾选上,windows update会自动下载相应的一些补丁,等待完成后,重新打开VS查看项目

 解决情况:无变化,但是我认为是有帮助的。另外如果一开始的界面没有明确下载(可能是因为网络不通畅),只是说从系统文件中搜寻的话,可以取消掉勾选后重新勾选,总之一定要确保系统中有了3.5的框架。

方法2:假设你的项目叫abc,项目(菜单栏)——>(abc)属性——>应用程序——>目标框架改成你现在.NET的版本(我的是4.6.1,但是我还是改成了4——>生成——>目标平台改成"x86"——>Ctrl+S保存一下——>生成(菜单栏)——>重新生成解决方案

 解决情况:有用,但是因为客户的电脑普遍都是.NET3.5的环境,所以做出来的程序也必须适应这个环境。虽然随后当环境切换回3.5后依旧报错,但是值得一提的是,在我把修复好之后的项目删了重新下拉项目重现这个bug的时候,切换到.NET4再切换回.NET3.5就可以正常显示了,所以认定这一方法是有帮助的,但是还需要解决一些其他因素。

方法3:搜索下载“.net framework 3.5 sp1”,从微软官方网址下载这个插件安装,安装完成后重启电脑

解决情况:完美解决。老实说其实我不知道这步有没有用,因为在完成方法2之后我并没有重启过电脑甚至没重新打开过过VS,只是转到设计器界面看依然报错就找了方法3来试,但是从后面看可能完成方法2就已经可以了(要重新打开下VS)。顺便提示下在安装.net3.5 sp1的时候,可能你双击了exe依然没反应,但是应该是有效的。


以上解决了框架的问题后,引用开始报错。包括以下错误:

“找不到类型库“ADODB”的包装器程序集。请验证 (1) 是否已正确注册 COM 组件,以及 (2) 目标平台与 COM 组件的位元是否相同。”

“未能解析 COM 引用“0002e558-0000-0000-c000-000000000046”版本 1.0。未将对象引用设置到对象的实例”

这时候就需要安装下owc11这个插件了,网上搜索“owc11.exe”,安装完成后,需要给工具箱注册上这个控件:

工具箱——>随便一个选项卡空白地方右键:选择项——>在“选择工具箱项”里选 COM组件——>浏览——>找到以下地址:C:\Program Files (x86)\Common Files\microsoft shared\Web Components\11\OWC11.dll,选中确定——>然后就可以在选项卡里看到五个控件——>确定。

一般到这引用报错就结束了,如果还没结束可以这么干:

解决方案资源管理器——>你的项目——>引用——>将所有失效的引用全部移除

挨个移除后,你会发现之前的报错全都消失了,只是在代码中间有某个未引用的错误。一般来说这个未引用是缺少一个叫msdatasrc.dll的文件,这时候找到相应的dll下载来之后引用上就好。

顺带一提,这种方法同样适用于将owc11的插件拉到窗体上报“未能导入activex控件,请确保它正确注册”的错误,虽然可能确实下载activeX的相关dll安装或者重装一遍office可能解决,但是我还是比较喜欢这种简单粗暴的法子。

相关资源:owc11.exe、msdatasrc.dll和ActiveX的相关功能dll

转载自原文链接, 如需删除请联系管理员。

原文链接:VS2015下Windows窗体项目引用owc11插件报错解决过程,转载请注明来源!

1