GAC中可以存在两个具有相同名称,相同版本但具有不同公钥的程序集吗?
我不确定这是否是要问的要点,但这是我在一次采访中必须面对的问题。
简短的回答:当然,它们可以在GAC中一起存在。您不能同时使用它们。
长答案:程序集使用其显示名称位于GAC中。可以注册两个具有相同名称的不同程序集,但是只有最后注册的程序集对应用程序可见。
对于您的情况(不同的公共密钥),如果您在应用程序中引用了较早的程序集,则可能会出现异常:引用将解析为较新的程序集,但公共密钥不匹配,则程序集将不会加载。
编辑:此行为并非来自程序集签名本身(签名是第一级的弱安全性,是一种使程序集唯一的方法),而这正是GAC的实现方式。它甚至还没有固定在石头上,这种行为将来甚至可能会改变。如今,请考虑避免这种奇怪的情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句