如何在不指定域中立的情况下将.net本机映像(NGEN)加载到多个appdomains中?

这里有NGEN + AppDomain问题。 我正在进行一些应用程序更改,这些更改主要是为了正确加载本机映像,以防止在.net应用程序中出现可怕的JIT时间。有些部分很简单,但是任何必须在appdomains中加载的程序集(我们的应用程序由于各种原因必须使用它们)才会在第一次加载其原生图像时,以及后续加载(现在是一个新的appdomain)图像被拒绝并发生JIT。 我知道关于域中性加载的所有内容,并且已经将它用于我们的一些有意义的程序集,但是进行域中立加载取消了首先使用appdomains的主要原因之一 - 因为域中性图像永远不会被卸载。 简而言之,我需要一种方法来加载和组装本机图像。我曾经希望只要我在尝试再次加载之前卸载本机映像的第一次使用时就不会应用正常的限制,但这会导致拒绝就像尝试同时加载本机映像一样。 此MSDN文章包含以下引用:   堕落的另一种方法   回到JIT编译就是加载   本机图像的不同副本   进入加载的每个AppDomain   相应的组装为   特定域。但是,这个   方法需要每个副本   NGen图像,除了第一个,   要加载到不同的地址   从其首选的基地址。从而   所有这些NGen图像的副本   需要修复他们的地址。 这对我的需求来说是完美的,但那篇文章是我见过的唯一一篇文章,我不确定它是如何实现的。 提前感谢您的任何见解,并感谢您的期待。     
已邀请:
       我曾经希望只要我在尝试再次加载之前卸载本机映像的第一次使用时就不会应用正常的限制,但这会导致拒绝就像尝试同时加载本机映像一样。    这有效,但您必须等待实际卸载本机映像。当AppDomain.Unload返回时,appdomain未完全卸载。只有在下一个完整的GC之后,appdomain才会完全卸载(以及本机映像)。        此MSDN文章包含以下引用:    Surupa正在推测CLR中可能的替代实施,但目前尚未实施。 谢谢 拉克山费尔南多 CLR团队     

要回复问题请先登录注册