程序集 A 和 B 是私有(private)部署的并且具有强命名。程序集 A 包含对程序集 B 的引用。程序集 B 有两个版本:B1 和 B2。我希望能够为程序集 A 指明它可以绑定(bind)到 B1 或 B2——理想情况下,通过将此信息合并到程序集本身。我有哪些选择?
我有点熟悉版本控制策略及其应用于 GAC 的方式,但我不想依赖于 GAC 中的这些程序集。
最佳答案
您可以在多个位置向 .Net Framework 指示强类型库的特定版本应该优先于另一个版本。它们是:
- 发布商政策文件
- machine.config 文件
- 应用程序配置文件
所有这些方法都利用了 "<bindingRedirect>"可以指示 .Net Framework 将程序集的一个版本或一系列版本绑定(bind)到特定版本的元素。
下面是一个简短的标记示例,用于将程序集的所有版本绑定(bind)到 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决定哪种方法最适合您的情况。
关于.net - 我如何指示依赖程序集的多个版本都可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54546/