绑定到GAC的特定程序集版本

时间:2014-09-03 12:28:19

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

我们有一个visual studio包(VS Package),它引用了两个类库项目:Project A和Project B. Project A又引用了另一个类库项目(Project B)。

所以依赖结构如下所示: VS套餐    - >项目A.    - > B项目

所有项目都存在于同一解决方案中,并且依赖项已设置为正确的项目引用。部署VS软件包时,项目A和项目B中的程序集将部署到GAC。这些组件很有名。没有指定绑定重定向。

我们部署了同一个VS软件包的多个版本,因此项目A和项目B程序集的几个版本都在GAC中。问题是无论执行哪个版本的VS包,它总是从GAC加载最新的汇编版本。

我们如何强制从GAC加载正确版本的程序集,这是构建VS Package项目时使用的版本?

感谢。

编辑我原来的帖子,以更准确地描述我的情况。

3 个答案:

答案 0 :(得分:1)

这应该可以解决问题,但我不建议你应该避免使用GAC并让你的图书馆关闭。

Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");

For more information read the manual

答案 1 :(得分:0)

在参考的“属性”窗口中,您可以将Specific Version设置为true。

enter image description here

答案 2 :(得分:0)

您可以添加Binding Redirect。这可以在各种级别完成,例如机器,应用程序或发布策略。

请参阅here获取指导。