gpt4 book ai didi

c# - 是否可以将 Assembly.ReflectionOnlyLoad 与发布者策略/程序集版本控制一起使用?

转载 作者:行者123 更新时间:2023-11-30 12:15:37 25 4
gpt4 key购买 nike

我的目标:

我们允许将我们的产品与第三方组件(库)集成,这些组件由于许可而未作为我们产品的一部分安装。目前,我们只想加载与第三方组件相关的功能,前提是这些组件安装在客户端的机器上。

当前解决方案:

我正在使用 Assembly.ReflectionOnlyLoad 并提供第三方程序集的全名,以便在应用程序加载相关功能之前验证第三方组件的安装。这适用于以下场景:

  • 在 GAC 中安装了准确版本的库
  • 库的精确版本被复制到应用程序目录/探测路径

问题:

现在我需要修改解决方案以支持发布者策略(将程序集绑定(bind)重定向到新版本)。我刚刚测试了我的代码,看起来 ReflectionOnlyLoad 忽略了部署到 GAC 的发布者策略,因此我的机制不会加载预期的功能,即使第三方程序集已正确安装(具有程序集重定向的新版本)。

如果我删除我的验证(= 每次都会加载功能)应用程序将正确加载新版本的第三方程序集,因此发布者策略可以正常工作,因为功能仍然在编译时依赖于旧版本。

在使用版本控制和程序集重定向时,如何验证 GAC 和探测路径中程序集的存在?

最佳答案

看来你可以调用AppDomain.ApplyPolicy将策略应用于程序集名称。然后,您可以对返回的名称调用 ReflectionOnlyLoad()

关于c# - 是否可以将 Assembly.ReflectionOnlyLoad 与发布者策略/程序集版本控制一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7064076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com