【发布时间】:2012-02-14 23:32:55
【问题描述】:
小问题:如何使用项目引用但构建我的程序集以使引用成为特定版本引用?
长问题(更多详细信息):我们正在为我们的一个应用程序进行模块化设置。不同的软件组件集及其依赖项被加载到独立的 AppDomain 中。
有些库可能被不同的组件引用。在某些情况下,我们会遇到汇编冲突。 IE,我们已经加载了最新版本的库和旧版本,并且正在使用的类型之一(组件使用反射实例化)需要获取新版本中不再存在的内容,即名称已更改的类型或其他什么,所以抛出一个 TypeLoadException 或任何东西,因为它试图从新版本中提取类型,即使旧版本也已被显式加载。避免此类问题的方法似乎是参考特定版本。
据我了解,从 Visual Studio 以这种方式设置引用的方法是将引用上的 Specific Version 属性设置为 true,这只能在您将 DLL 引用为文件参考不作为项目参考。问题是这些其他库仍在开发中,所以我可能需要在测试期间调试它们。我希望能够完成项目引用可以让您做的所有好事情,即导航到定义(实际上,主要是这样,所以我可以在调试等时设置断点)。
【问题讨论】:
-
您需要同时使用两个不同的版本,还是只想让代码正常工作?
-
两者都需要运行。更新了我的问题以反映这一点。
-
你得到了什么确切的错误?
-
再次添加更多信息。
-
Specific Version无济于事。查看加载上下文;他们可能会有所帮助。我在装配加载方面还不够熟练,无法进一步帮助您;对不起。
标签: .net visual-studio-2010 reflection msbuild assembly-resolution