我致力于将企业库程序集注册到全局程序集缓存 (GAC) 中。我使用的是用自己的密钥签名的企业库 5.0 版,并且我在许多 .NET 4.0 应用程序中使用这些程序集。
成功将企业库程序集注册到 GAC 后,应用程序启动并显示以下消息:
无法解析类型“Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter、Microsoft.Practices.EnterpriseLibrary.ExceptionHandling”。请验证拼写是否正确或是否提供了完整的类型名称。
当我从 GAC 取消注册企业库程序集时,应用程序返回到正常操作条件。
当企业库程序集注册到 GAC 中时,是什么导致应用程序失败?
这需要大量的搜寻才能弄清楚发生了什么。事实证明,企业库内部使用部分名称来动态加载类型。在本例中,企业库尝试动态加载 Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter,因为它出现在配置文件中。
要在运行时绕过部分名称引用,只需在配置文件中输入 QualifyAssembly 元素(请参阅 元素 http://msdn.microsoft.com/en-us/library/cd71chf0.aspx在 MSDN 文档中)。
就我而言,我需要输入的只是以下条目:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"
fullName="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblyBinding>
</runtime>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)