2010-08-31 77 views
0

我们有一个DotNetNuke应用程序,我们为其构建了许多模块,最近似乎一个特定问题不断出现。Asp.net网站DLL版本号

  1. 我们构建的模块使用Telerik的第三方DLL。
  2. 一些较旧的模块使用以.net 2.0为目标的DLL,而另一些则使用以该目标为目标的DLL .net 3.5
  3. 我们现在与旧模块发生冲突,因为我们将3.5 DLL加载到网站,这显然是因为以前的模块是针对以前的DLL构建的。

我们不能做的是回到所有以前的模块,并更新这些项目,并重建它们,每次我们有轻微的DLL差异时,因为最终这两个版本的DLL做的确切一样。

是否可以从项目中的引用中删除版本信息,以便它可以自动假定使用它正在使用的项目中可用的任何版本?

问候, 雅克

+0

使用绑定重定向有帮助吗?你没有说明“冲突”的性质。 http://www.telerik.com/help/aspnet-ajax/installwebconfigbindingredirect.html – bzlm 2010-08-31 06:58:30

+0

似乎GAC是另外一种选择。这样,引用不同版本DLL的不同模块将寻找GAC来查找正确的DLL – Jacques 2010-08-31 13:53:45

回答

0

它不可能从基准删除版本信息。相反,你可以在web.config中使用BindingRedirect。基本上,因为它的名字建议是一个参考重定向器,当你的2.0模块搜索一些旧版本的telerik dll版本时,你可以将它重定向到更新的版本。

这将工作仅在除DLL版本号一切都不同了

1

这可以通过使用Assembly Binding Redirection来实现。基本上,您在Web.config中创建了一个配置部分,基本上这样说:“请求这些版本的程序集时,请使用此特定版本”。