如何从GAC加载特定版本的程序集出于测试目的,我喜欢从GAC加载特定版本的DLL程序集。但是,我的程序总是加载最新版本——我认为是由策略程序集驱动的。vardll=Assembly.Load("Oracle.ManagedDataAccess,Version=4.121.1.0,Culture=neutral,PublicKeyToken=89b483f429c47342");Console.WriteLine(dll.ToString());输出:Oracle.ManagedDataAccess,Version=4.122.1.0,Culture=neutral,PublicKeyToken=89b483f429c47342即使我在强名称中指定版本“4.121.1.0”,它也会加载版本“4.122.1.0”。有没有办法强制使用特定版本?来自fuslogvw.exe中请求的fuslogvw.exe结果:***AssemblyBinderLogEntry(29.06.2017@11:24:15)***操作成功。绑定结果:hr=0x0。操作成功完成。程序集管理器加载自:C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll在可执行文件C:ProgramsToolsConnectionTester_x64.exe下运行---下面是详细的错误日志。===预绑定状态信息===LOG:DisplayName=Oracle.ManagedDataAccess,Version=4.121.1.0,Culture=neutral,PublicKeyToken=89b483f429c47342(Full-specified)LOG:Appbase=file:///C:/Programs/Tools/LOG:InitialPrivatePath=NULLLOG:DynamicBase=NULLLOG:CacheBase=NULLLOG:AppName=ConnectionTester_x64.exe调用程序集:ConnectionTester_x64,Version=1.0.353.0,Culture=neutral,PublicKeyToken=null。===LOG:此绑定在默认加载上下文中启动。日志:未找到应用程序配置文件。LOG:Usinghostconfigurationfile:日志:Usingmachineconconfiguration文件来自C:WindowsMicrosoft.NETFramework64v4.0.30319configmachine.config。日志:发布者策略文件位于C:WindowsMicrosoft.NetassemblyGAC_MSILPolicy.4.121.Oracle.ManagedDataAccessv4.0_4.122.1.0__89b483f429c47AccessGAC_MSILPolicy.4.1发现发布者策略文件重定向:4.121.1.0重定向到4.122.1.0。日志:ProcessorArchitecture被锁定到MSIL。日志:策略后参考:Oracle.ManagedDataAccess,Version=4.122.1.0,Culture=neutral,PublicKeyToken=349b9fitess483=MSILLOG:通过查看GAC找到程序集。LOG:绑定成功。从C:WindowsMicrosoft.NetassemblyGAC_MSILOracle.ManagedDataAccessv4.0_4.122.1.0__89b483f429c47342Oracle.ManagedDataAccess.dll返回程序集。日志:看起来程序集是默认加载的。看起来像预期的那样,并说FoundpublisherpolicyfileRedirect:4.121.1.0redirectsto4.122.1.0但我想绕过它。GAC中安装了4.121.1.0版:C:ProgramFiles(x86)MicrosoftVisualStudio11.0>gacutil/lOracle.ManagedDataAccessMicrosoft(R).NETGlobalAssemblyCacheUtility。版本4.0.30319.18020版权所有(c)MicrosoftCorporation。版权所有。全局程序集缓存包含以下程序集:Oracle.ManagedDataAccess,Version=4.121.1.0,Culture=neutral,PublicKeyToken=89b483f429c47342,processorArchitecture=MSILOracle.ManagedDataAccess,Version=4.121.2.0,Culture=neutral,PublicKeyToken=89b483f429c47342,processorArchitecture=MSILOracle.ManagedDataAccess,Version=4.122.1.0,Culture=neutral,PublicKeyToken=89b483f429c47342,processorArchitecture=MSILNumberofitems=3C:ProgramFiles(x86)MicrosoftVisualStudio11.0>你可能无法绕过发布者策略。将应用配置文件添加到dependentAssemblyMoreinformationhereandhere以上是C#学习教程:如何从GAC加载特定版本的程序集分享所有内容,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
