查找多个 System.Web.Mvc 引用的原因
Find cause of multiple System.Web.Mvc references
使用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 文件。
管理 NuGet 包仅显示 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
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
这基本上测试了您的应用程序,对于应用程序中引用的 System.Web.MVC 的任何版本(从 1-5.2.3)改为使用 5.2.3.0。很可能您有一个仍在寻找特定版本 5.0 的参考。 JSON.net.
这让我一直很生气
从引用中删除多个现有 dependency
。之后添加您要保留在项目中的 reference
。
并且从 属性 window 您可以看到当前 dependency
上的版本。从中检查该版本并在 web.config
文件中设置版本。
使用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 文件。
管理 NuGet 包仅显示 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
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
这基本上测试了您的应用程序,对于应用程序中引用的 System.Web.MVC 的任何版本(从 1-5.2.3)改为使用 5.2.3.0。很可能您有一个仍在寻找特定版本 5.0 的参考。 JSON.net.
这让我一直很生气从引用中删除多个现有 dependency
。之后添加您要保留在项目中的 reference
。
并且从 属性 window 您可以看到当前 dependency
上的版本。从中检查该版本并在 web.config
文件中设置版本。