如何使用任何装配版本

时间:2012-05-29 13:34:57

标签: c# assemblies

我的应用程序引用了一个版本大量增加的程序集。

我可以在Visual Studio对false的引用中设置“特定版本”,这样我就不会遇到任何构建问题,但我需要能够在运行时使用任何版本。

据我所知,我有两种选择:

  1. 请求dll的发布者使用发布商政策文件并采用Assembly Binding Redirection

  2. 使用Reflection动态加载程序集。

  3. 现在,使用选项1,有可能无法说服装配供应商使用此技术。由于此程序集的发布数量,供应商在配置中会有很多大的重定向,因此我正在抢占这一点。

    使用选项2,我宁愿不在此实例中使用Reflection,因为我想保持VS Intellisense带来的灵活性和易用性。

    所以,我的问题是:是否存在第三种选择,或者我对前两种没有实际意义的选择表示担忧?

1 个答案:

答案 0 :(得分:1)

选项2a:使用反射仅在发布版本中加载它。如果由于版本冲突而失败,则覆盖AssemblyResolve事件并手动加载程序集。

选项3:不要更改版本号。 (如果你想要一个内部版本号,请将它放在程序集信息的不同字段中,这样你就可以区分不同的构建,但如果公开的API没有改变,不要认为它是一个新版本)