程序集A和B是私有部署和强名称。程序集A包含对程序集B的引用。程序集B有两个版本:B1和B2。我希望能够为程序集A指出它可以绑定到B1或B2 - 理想情况下,通过将此信息合并到程序集本身。我有什么选择?
我对版本控制策略及其适用于GAC的方式有些熟悉,但我不想依赖于GAC中的这些程序集。
答案 0 :(得分:2)
您可以向.Net Framework指出一些地方,强类型库的特定版本应优先于另一个。这些是:
所有这些方法都使用"<bindingRedirect>"元素,该元素可以指示.Net Framework将程序集的一个版本或一系列版本绑定到特定版本。
以下是用于将程序集的所有版本绑定到版本2.0到版本2.5的标签的简短示例:
<assemblyBinding>
<dependantAssembly>
<assemblyIdentity name="foo" publicKeyToken="00000000000" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0 - 2.0.0.0" newVersion="2.5.0.0" />
</dependantAssembly>
</assemblyBinding>
有很多细节,所以最好是阅读Redirecting Assembly Versions on MSDN以确定哪种方法最适合您的情况。
答案 1 :(得分:1)
您可以在app.config文件中设置版本策略。或者,您可以通过调用Assembly.LoadFrom()
手动加载这些程序集,此时不会考虑程序集版本。