0

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

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

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

  1. 要求 dll 的发布者使用 Publisher Policy File 并采用Assembly Binding Redirection

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

现在,使用选项 1,组装供应商有可能无法被说服使用这种技术。由于此程序集的发布数量,供应商将在其配置中进行大量重定向,因此我会先发制人。

使用选项 2,我不想在这种情况下使用反射,因为我想保持 VS Intellisense 带来的灵活性和易用性。

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

4

1 回答 1

1

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

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

于 2012-05-29T14:14:41.420 回答