visual studio express 2012 app.config remapping assembly
不久前我把一个项目从MVC 3移到了MVC 4。
当我构建时,我会收到消息
1 2 3 4 | 1> No way to resolve conflict between"System.Web.Mvc, Version=3.0.0.0 ..." and , Version=2.0.0.0 1> Consider app.config remapping of assembly"System.Web.WebPages ..." from Version"1.0.0.0" to Version"2.0.0.0" to solve conflict and get rid of warning. 1> Consider app.config remapping of assembly"System.Web.WebPages.Razorfrom Version"1.0.0.0" [c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll] to Version"2.0.0.0" [C:\Users\OEM\documents\visual studio 2012\Projects\DabTrial\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib et40\System.Web.WebPages.Razor.dll] to solve conflict and get rid of warning. |
等等。
当我查看引用时,它们都是较新版本,web.config只引用较新版本。当我使用公钥标记(在Windows资源管理器中)搜索整个解决方案目录时,没有找到引用早期版本的XML类型文件。
显然,文件的路径是不同的,但我找不到编译器指向早期.dll文件的路径的位置。
项目构建和运行良好,但我认为编译器出于某种原因建议进行这些更改。谢谢你的帮助。
nuget依赖项可能引用了mvc3版本。您可以尝试将以下内容放入Web配置以强制使用MVC4版本:
1 2 3 4 5 6 7 8 | <runtime> <dependentAssembly> <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> |
您还可以尝试在包管理器控制台中运行以下内容
1 | Update-Package -Reinstall |
此命令必须至少有nuget的2.1版本,但如果更新了.NET,它将更新包并重新定位它们。你可以查看这篇文章了解更多信息。
将解决方案从.NET 4.0重新定位到4.5-如何重新定位Nuget包?
我也有这样的问题。我只做了两件事:
- 更新了system.web.mvc和最新版本(5.2.3)的所有依赖项
- 重新生成所有解决方案(我使用了"解决方案->干净解决方案",然后是"解决方案->生成解决方案")。