我有一个项目,我想使用某个特定版本的dll。
GAC包含几个版本的dll(新旧),我想在运行程序时使用旧版本。
问题是最新的dll总是从GAC中获取。
你知道是否有办法:
谢谢!
答案 0 :(得分:0)
将库添加到项目中并折叠项目树的“引用”节点后,您将看到添加的库。当您选择它并单击上下文菜单的“属性”节点时,您可以指定是否应使用特定版本的库以及要使用的版本。只需将“特定版本”设置为true并指定版本号。然后,您不必处理从中加载所需版本的问题。
答案 1 :(得分:0)
您是否尝试过#34;重定向程序集版本"在你的app.config? http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx
答案 2 :(得分:0)
让我永远找出来,但是我所做的是在“参考路径”上,我将确切的路径添加到旧的DLL,然后将其作为第一个检查的地方。然后,它删除了我的Crystal Reports所需的旧版本。我们有多个使用13.0.2的应用程序,但我在Visual Studio 2017中开发。我能够为VB安装最新的Crystal Reports加载项13.0.23,但是使用此方法引用了旧的13.0.2。
答案 3 :(得分:0)
您可以在app.config或binding redirect
节点的web.config中使用runtime
:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
</appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
确保您具有正确的publicKeyToken
,并且知道要将哪个版本重定向到哪个版本。
(您可以使用this info来检查publicKeyToken
中的DLL
。)
您还可以使用Package Manager Console
Get-Project -All | Add-BindingRedirect
这将更新所有app.config
文件并添加绑定重定向。