c# – 动态添加引用到我的项目

我正在为Microsoft Word开发一个加载项.

在我的加载项中我使用文件“Microsoft.Office.Interop.Word.dll”的引用,所以我可以使用单词对象.

如果开发机器安装了word 2007,则要包含在引用中的文件是版本12
如果安装了单词2010,则该文件应为版本14.

无论机器上安装了哪个版本的Word(换句话说告诉我的应用程序自动检测安装了哪个版本的办公室并自动使用相应的互操作文件),我如何构建我的添加并使其工作?

最佳答案 如果您的实际代码引用了给定程序集中的项目,则尝试挂钩到不同的版本实际上可能会导致错误(例如,如果某些方法签名已更改).在大多数情况下,最好的策略是生成不同的构建以针对不同的DLL版本,并在用户的机器上安装正确的构建.

您可以使用一些策略来简化这一过程,例如在一组接口中包含对此库的调用,然后有两个主要的“插件”程序集,它们提供接口的实现,但在实现它们时针对不同的DLL.该软件可以通过配置动态加载实现绑定,类似于流行的依赖注入框架的方式.这样,如果方法签名从一个版本更改为另一个版本,您只需更改一个类,其余代码仍可按原样运行.

点赞