jur*_*jur 7 .net c# plugins enterprise-library autodesk
我们正在为Autodesk Inventor开发一个加载项.我们的软件是一堆在运行时加载到Inventor中的dll程序集.我们决定使用Microsoft Enterprise Library 5.0进行日志记录和异常处理.
现在我们遇到了一个问题,因为事实证明Inventor 2013使用的是Enterprise Library 4.1.当我们的加载项加载时,它无法加载正确版本的程序集,因为Inventor在其Bin目录中已经有一个旧版本.
我们到目前为止考虑的选项:
两者都很糟糕,我的想法已经不多了,所以我正在寻求帮助.
选项1提出了这个问题:企业库是向后兼容的,并且会替换Bin文件夹中的那些DLL会导致问题吗?我已经尝试过,Inventor没有抱怨并按预期工作(没有检查EL功能).
选项2使我们使用旧版本并将我们绑定到Autodesk使用的版本,因此我们必须观察它们何时升级,特别是当它们发布新版本的Inventor时.
这种情况下的最佳做法是什么?
更新:
我们通过在GAC中添加较新版本的Enterprise Library解决了这个问题.我认为这里发生的事情是.NET尝试首先加载旧版本(因为它在程序集搜索顺序中更高)并且在失败后再也没有去寻找合适的版本.在GAC中时,它会正确解析.
据我所知,合理的解决方案是嵌入程序集并使用 ResourceManager 类访问它们,这将允许您使用较新的版本,同时维护父项目日志记录机制。
您可能会发现这个问题很有用: 将程序集嵌入另一个程序集中
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |