我们有一个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项目时使用的版本?
感谢。
编辑我原来的帖子,以更准确地描述我的情况。
答案 0 :(得分:1)
这应该可以解决问题,但我不建议你应该避免使用GAC并让你的图书馆关闭。
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
答案 1 :(得分:0)
在参考的“属性”窗口中,您可以将Specific Version
设置为true。
答案 2 :(得分:0)
您可以添加Binding Redirect
。这可以在各种级别完成,例如机器,应用程序或发布策略。
请参阅here获取指导。