参考具有后备版本的GAC程序集

时间:2011-05-10 15:02:53

标签: c# .net .net-4.0 gac .net-assembly

我的项目引用了GAC中程序集的2.0.0.0版。如果版本2.0.0.0不可用,我想将引用重定向/更改为版本号1.0.0.0。

有些研究提出了以下帖子,但它们似乎与我的情景没有直接关系:
How to provide a fallback assembly instead of the one that can't be loaded?
How to reference to multiple version assembly

我认为强名称程序集需要特定的版本号,所以我不认为引用本身可以使用通配符(*)?解决我的场景的最简单方法是什么?

2 个答案:

答案 0 :(得分:1)

解决方案是使用bindingRedirect。显然,如果oldVersion高于newVersion,它会起作用,就像在我的场景中一样。 http://www.infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html

没有代码更改 - 简单的配置添加。

答案 1 :(得分:0)

如果您需要动态加载任意程序集和类,可以使用Assembly.Load(或其中一个变体)和Assembly.CreateInstance()

你需要这样做的原因是它允许后期绑定。在GAC中引用程序集是一种早期绑定方案,在运行时无法进行更改。