【发布时间】:2015-04-24 21:45:34
【问题描述】:
使用dotPeek检查一个web项目的主程序集的引用,我看到了:
System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Visual Studio 中的项目引用仅显示版本 5.2.3.0。我还搜索了引用项目的 .csproj 文件。
Manage NuGet Packages 仅显示 Microsoft.AspNet.Mvc 的 v5.2.3。
搜索packages文件夹只能找到Microsoft.AspNet.Mvc.5.2.3\lib\net45下的v5.2.30128.0。
gacutil /l System.Web.Mvc 显示版本 3.0.0.0 和 4.0.0.0。
我使用 dotPeek 的引用层次结构查看了其他引用,但没有找到旧版本。
根据回复,我检查了 Web.config;这已经存在了:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
我还检查了其他 Web.config 是否存在冲突版本。
此外,我尝试在 System.Web.Mvc 参考属性中将特定版本设置为 True。这没什么区别。
是否需要多个版本?如果没有,如何找到并删除旧版本的来源?
【问题讨论】:
-
在您的 web.config 的程序集绑定部分中是否有任何引用?如果不是,您可能需要添加它。它很可能是一个次要的依赖关系。
-
它真的会导致问题吗?如果您的其他组件之一正在引用它,您可以尝试更新所有其他组件。但如果它没有引起任何错误,我会忽略它。
-
@Brian 我们在负载下遇到了严重的延迟问题,不得不回滚此更新。我们正在调查所有可能的原因。
-
尝试删除项目的
output (bin)和lib文件夹并重新引用相关的库。它解决了我一个类似的问题,因为 same dll 在输出文件夹中以不同的名称出现了两次。不确定这是否有帮助
标签: c# asp.net-mvc asp.net-mvc-5 nuget projects-and-solutions