vs2003 开发office插件的问题

前一段时间处理了一个office插件的项目
利用vs.net提供的addin项目开发时遇到了很多问题,特别拿出来记录一下。

vs.net开发office addin项目其实很简单,在文件、新建、项目、拓展项目、shared addin项目 进去看提示配置即可。

环境:进去项目后可以看到自动生成的connect类,所有的操作都可以在这里完成:

      OnAddInsUpdate 方法:在环境中加载或卸载外接程序时发生。

      OnBeginShutdown 方法:正在关闭环境时发生。

      OnConnection 方法:将外接程序加载到环境中时发生。

      OnDisconnection 方法:当从环境中卸载外接程序时发生。

      OnStartupComplete 方法:环境启动完毕时发生。
具体的代码就不贴了,就几个问题描述一下:
第一:不可引用com对象
       出于office开发的习惯,一开始我就在引用中加了word、excel等com对象,利用对象开发很省事儿。在本机调试通过,执行都没有问题,但是打包安装到别的机器时问题出了:装过完整vs.net的机器正常运行,只装了.net frameworks的机器不能正常运行,我找了一下,发现addin项目的一个关键注册表键值被更改了!
       怎么回事儿呢?在网上查了下没什么发现。
       回头想了下,我把外部引用全部删除,然后再代码中用反射来处理,测试通过。总算松了一口气,但是反射代码倒是不难写,但是每个对象类型的整理是很烦人的。
  第二:word 上的插件失效
       在测试的时候,测试人员提出一个看是简单的问题:word在新建一会后菜单失效!拿回来想了一下,很可能是word这个破东西特殊的mdi格式惹得祸,在网上找了找,解决的办法只能在事件中处理,但是在里面反射不知类型的事件是很困难的,没办法,用强名注册word的com对象,然后加进来处理;本机测试通过,然后。。有的机器好用有的机器不好用。
      怎么办?于是又写了个批处理,在安装时注册这个引用的dll.终于ok了。。痛苦!
第三:过了几个周,使用的部门又传来消息:word插件莫名失效,但是其他的都正常。
       郁闷吧,注册表所有的关联项都正常。。至今找不出原因。但是重装后都好使了。不知道什么时候还出问题。

你可能感兴趣的:(Office)