Flo*_*Flo 35 .net c# assemblies gac
我是否可以以某种方式配置.NET应用程序(Visual Studio中的设置),它引用"本地"程序集(而不是GAC)而不是GAC中的程序集,尽管两个程序集具有相同的名称和相同的版本?
Jef*_*nal 24
如果两个程序集都是强名称(签名),则CLR将始终从GAC加载.
以下是运行时用于解析程序集引用的步骤(来自运行时如何定位程序集):
通过检查适用的配置文件(包括应用程序配置文件,发布者策略文件和计算机配置文件)来确定正确的程序集版本.如果配置文件位于远程计算机上,则运行时必须首先找到并下载应用程序配置文件.
检查程序集名称是否已绑定到之前,如果是,则使用先前加载的程序集.如果先前加载程序集的请求失败,则请求会立即失败,而不会尝试加载程序集.
检查全局程序集缓存.如果在那里找到程序集,则运行时使用此程序集.
装配探头(...省略了一些材料......)
如同一篇文章后面所述:
没有强名称的程序集没有版本检查,运行时也没有检查全局程序集缓存中没有强名称的程序集.
因此,如果您能够从本地程序集中删除签名,则应用程序将使用它而不是GAC中的签名.
有关运行时绑定机制的详细信息,请参阅Suzanne Cook的博客.
Scott Hanselman的博客文章也提供了绑定过程的精彩概述.
| 归档时间: |
|
| 查看次数: |
34404 次 |
| 最近记录: |