最近在用C#写一个窗体上位机,作为新手的我,历经万难终于在自己的电脑上实现了功能,可是当把生成的文件夹拉到别人的电脑上时,却运行不了,显示CLR20r3错误,在网上找了很多的方法,都不行。后来确定错误的原因是,我调用了第三方ocx控件,我在我的电脑编辑时通过regsvr32来注册(需要以管理员的身份来运行,具体注册参考网上),而别人的电脑上没有注册那个控件,所以运行不了。果然,在别的电脑上通过regsvr32注册后,就能运行了。
但是如果作为一个好的产品,不可能叫每个人都要在电脑上手动注册吧,毕竟太麻烦了,我又去查找了网上的资料,终于找到了两种可行的方法,当然,条条道路通罗马,肯定也是有别的方法,事不宜迟,马上开车。
工具:VS2010,第三方ocx控件(XXX.ocx)
方法一:直接将运行程序打包,并在打包时将ocx控件加入其中,实现一起打包,在程序安装时,系统会自动实现注册ocx控件。
该方法参考:http://blog.sina.com.cn/s/blog_732a118101015nco.html,
方法二:直接调用ocx,不向系统注册。
该方法的原文为http://www.fiveoxen.com/1.html,
注意的细节:
1、VS的开发人员命令行,在开始菜单那里,找到Microsoft Visual Studio 2010,会有命令行
2、在输入命令生成manifest文件时,需要确定你的ocx控件所在的路径。
3、如果有原项目,是在原项目上添加app.manifest,而不需要重新建一个项目。
4、最后,VS一般生成的EXE文件都是在bin文件夹下的debug或者release文件夹中(看你自己的选择),所以要把ocx控件放在debug或者release文件中。