什么是 .NET 程序集中的融合
Posted
技术标签:
【中文标题】什么是 .NET 程序集中的融合【英文标题】:What is Fusion in .NET Assembly 【发布时间】:2012-04-15 05:05:34 【问题描述】:在 Suzanne Cook 的博客中有这样一段描述:
LoadFrom Context: 一般情况下,如果用户提供 Fusion 用于查找程序集(以及当时的程序集)的路径 在加载上下文中找不到路径),那么它在 LoadFrom 上下文。有多种按路径加载的方法: LoadFrom()、CreateInstanceFrom()、ExecuteAssembly(),加载一个 使用代码库等通过互操作进行组装。
我还发现了一篇关于它的 MSDN 文章,但我不确定 Fusion Suzanne 所说的是否与此处相同:http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx 但它似乎是一个日志查看器,所以我理解 Suzanne 所说的是
Fusion 是一种探测机制,它采用路径等,它探测 Application Base、
codeBase
、GAC 等中的程序集将它们加载到上下文中。
有人可以澄清一下吗?
【问题讨论】:
MSDN 有时缺乏更好的文档,尽管它们提供了世界上最好的文档之一。 文档现在位于:docs.microsoft.com/en-us/dotnet/framework/tools/… 【参考方案1】:Fusion 是 .NET 中程序集加载器的代号。如果没记错的话,Suzanne 曾在 Fusion 团队中写过大部分 Assembly binding log viewer。你可以在这个程序中看到代号的提示,因为它被称为fuslogvw.exe
fusion 的工作是寻找程序集并将它们加载到当前的应用程序域中,以便程序可以执行。程序集绑定日志查看器显示它查找程序集的位置,以及加载它们时可能出现的任何问题。非常适合调试。
【讨论】:
Hanselman 对使用 Fusion 有一个很好的小总结。 hanselman.com/blog/… 谢谢!您看过支持 Fusion 的文档吗?不是如何启用或查看日志。这很好。【参考方案2】:是的。 Fusion 是 .Net 中“子系统”的名称,它为程序集解析/加载提供查找机制。
【讨论】:
以上是关于什么是 .NET 程序集中的融合的主要内容,如果未能解决你的问题,请参考以下文章