【问题标题】:Is it possible to reload the CLR?是否可以重新加载 CLR?
【发布时间】:2010-12-20 12:47:12
【问题描述】:

我正在摆弄一个 CLR 托管在 C 应用程序中的项目。是否有受支持的方式来取消 CLR 的链接并重新启动它?

【问题讨论】:

  • 为什么要重新加载?在 IIS 模型中,重新加载/回收的单元是工作进程本身。我不知道 SQLCLR,但我怀疑那里有更有趣的东西。

标签: .net clr clr-hosting


【解决方案1】:

您可以在创建的AppDomain 中加载和托管所有信息,而不是尝试重新加载 CLR。​​

然后您可以管理 AppDomain 的生命周期,包括卸载整个 AppDomain 并加载一个新的。

这将提供重新加载 CLR 将提供的大部分好处,而无需实际尝试卸载 CLR。​​

【讨论】:

    【解决方案2】:

    我现在没有这本书,但我相信(根据Customization the Common Language Runtime)这是不可能的。您可以卸载,即“禁用”它,但您不能在同一个流程实例中重新加载它。

    【讨论】:

    • 确实如此,而且很痛苦(尤其是对于 CLR 托管代码的单元测试!)
    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多