我正在为Microsoft Word开发一个加载项。 在我的加载项中我使用文件“Microsoft.Office.Interop.Word.dll”的引用,所以我可以使用单词对象。
如果开发机器安装了word 2007,则要包含在引用中的文件是版本12 如果安装了单词2010,则该文件应为版本14.
无论机器上安装了哪个版本的Word,我如何构建我的插件并使其工作(换句话说告诉我的应用程序自动检测安装了哪个版本的Office并自动使用相应的interop文件)?
答案 0 :(得分:2)
如果您的实际代码引用了给定程序集中的项目,则尝试挂钩到其他版本实际上可能会导致错误(例如,如果某些方法签名已更改)。在大多数情况下,最好的策略是生成不同的构建以针对不同的DLL版本,并在用户的机器上安装正确的构建。
您可以使用一些策略来简化这一过程,例如在一组接口中包含对此库的调用,然后有两个主要的“插件”程序集,它们提供接口的实现,但是当它们针对不同的DLL时会针对它们实施它们。该软件可以通过配置动态加载实现绑定,类似于流行的依赖注入框架的方式。这样,如果方法签名从一个版本更改为另一个版本,您只需更改一个类,其余代码仍可按原样运行。