VSTO开发Office总是遇到Office的版本问题,不同的版本于是会遇到兼容问题,以前使用C++开发word 2000/2003的处理程序时,为了一个程序在2000/2003下都可用,采用了基于2000版本的tlb引入库,由于Office的前向兼容,因此也能解决问题,当然新的特性不能使用。
在托管环境下引入了PIA,托管程序和Office的COM组件通讯,目前有Office 2000/20003/2007/2010四个版本的PIA程序,如果采用兼容低版本的方法开发,比如最低的版本支持2003,那么只要部署2003 PIA就行,但涉及一个新版本引入的功功能就无法使用,因此采用下文
http://blogs.msdn.com/b/andreww/archive/2008/09/02/version-specific-ui-in-add-ins.aspx 的处理方法每个版本使用自己的PIA,同时又便于维护代码的方法值得在项目中引用,不然维护这么多版本简直是个梦魇。当然采用这个方法,部署时需要确定对应版本的PIA的正确安装。
关于这个问题一下是个详细的参考的目录:
Add-ins for Multiple Office Versions without PIAs
Why is VS development not supported with multiple versions of Office?
Can you build one add-in for multiple versions of Office?
Add-ins for Multiple Office Versions without PIAs (Pt2), or _VtblGap
http://blogs.msdn.com/b/andreww/archive/2008/09/02/version-specific-ui-in-add-ins.aspx
Version-Specific UI in Add-ins