【问题标题】:Comparing assembly dependencies比较程序集依赖项
【发布时间】:2014-08-15 14:07:24
【问题描述】:

我有一个引用的 a.dll v2

我使用 Assembly.LoadFrom(file); 加载了一个依赖于 a.dll v1 的 random.dll;

我想知道是否有办法获取原始 random.dll 所需的程序集/版本列表。这样我就可以检查它是否适用于最新的 V2 并决定从中加载类。

【问题讨论】:

  • 手动检查方法是使用 JetBrain 的 dotPeek 免费应用程序。
  • 我希望在代码中做一个简单的 currentversion != assemblydependency 版本检查。

标签: .net assemblies


【解决方案1】:

LoadFrom 将尝试加载所有依赖项。您可能想使用Assembly.ReflectionOnlyLoadFrom,它不会尝试加载引用到程序集的所有内容,然后您可以使用GetReferencedAssemblies 获取引用的程序集列表。要获取程序集的版本,您需要 FileVersionInfo.GetVersionInfo

【讨论】:

  • 为了实现这一点,我必须将它加载到单独的应用程序域中。我希望避免这种情况。
  • 您不需要单独的应用程序域,Assembly.ReflectionOnlyLoadFrom 不会加载程序集,而是将程序集引用到 AppDomain。它只是加载程序集清单以允许您获取引用它的 dll 列表。 LoadFrom 将程序集及其所有引用的程序集加载到应用程序域中,如果由于版本不兼容而无法执行此操作,则会失败
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 2010-09-06
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多