在.net 2.0下,如果想支持对多word版本的支持,就要装,不同的pia,可是wordxp尤其惹人烦,一但装上就不能卸载,为什么要卸载xp的Pia呢?
应为Word.Application 与word.ApplicationClass在Xp的pia下是不能相互转换的,可是有些word事件是一定要在ApplicationClass下才可以被调用的。如果一但装上WordXp的PIA那么以后,你可能编写的word2000,word2003下的程序就要出错了,这时就要想到卸载wordxp的PIA了,那么下面我们开始找办法卸载她!
1、首先就是看看,wordxp,在安装的时候注册了点什么


































































里面分两步,第一是用“gacutil -i Microsoft.Office.Interop.Access.dll”引用dll,第二就是注册注册表信息
那么我们来想解决办法:
首先,用“gacutil -u ”来卸载这些dll是最方便的,如果用来删除注册信息的注册键,工作是比较浩大的,所以我的道选是用“gacutil -u ”来卸载dll,可是执行完以为发现失败了,其实在执行时gacutil 时,他们是找不到这个命令的。所以其实这些dll开始就没有被注册进去。残念.....
在Visual Studio 2005 命令提示找执行gacutil 是没有问题的,可是卸载又出了问题,所以从dll上下手是错误的了。
2、就是重装word,让2000或2003在安装的时候还原这些环境,结果又以失败告终;
3、重装.net2.0,来还原这些环境,结果又以失败告终;
试过多种方法发现,只要是装过wordxp的pia后就不要妄想通过后期绑定的方式进行操作word了,应为他改写了word的com与.net的application,applicationClass的映射。除非重装系统,不过值得庆幸的是,装word2003,还是可以后期绑定的。所以,卸载wordxp的pia宣告失败。