当前位置:  开发笔记 > Android > 正文

如何强制.NET使用GAC中的程序集的本地副本

如何解决《如何强制.NET使用GAC中的程序集的本地副本》经验,为你挑选了3个好方法。

我有一个.NET程序集(由于我无法控制的原因)必须在GAC中.但是,同一个程序集由另一个程序使用,该程序具有自己的同一程序集的旧版本的副本.它必须使用自己的副本,而不是GAC中的任何副本.在这种情况下,正确的版本控制可能比它的价值更麻烦,原因我不会进入.我的问题是:无论如何要告诉.NET:只需使用此DLL,就在此目录中 - 忽略您在GAC或其他任何地方找到的内容.



1> Corbin March..:

确保GAC程序集和本地程序集具有不同的版本号(至少可以通过在AssemblyInfo中对AssemblyVersion进行粗体处理来自动增加您的构建号:[assembly:AssemblyVersion("1.0.0.*") )]).然后,使用应用程序的配置重定向程序集绑定:

http://msdn.microsoft.com/en-us/library/2fc472t2(VS.80).aspx

http://msdn.microsoft.com/en-us/library/433ysdt1(VS.80).aspx.

在您的情况下,您将不需要assemblyBinding配置的"applyTo"属性.你只需要:


    
        
            
            
        
    


您是否可以通过重新编译应用程序以使用新版本的dll来避免使用此绑定重定向,或者是否始终需要更改某些配置?

2> JaredPar..:

如果他们有相同的版本号,答案是你不能.如果您尝试加载具有与GAC程序集相同的完整程序集名称(名称,版本,密钥)的程序集,则CLR将每次都选择GAC程序集.



3> Ying..:

您可以设置DEVPATH以强制加载程序集,请参阅链接文本

这不能回答你的问题,因为它只适用于开发使用,甚至不是真的推荐,因为它不反映生产用法.不过,我想我会分享它,因为它很高兴知道.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有