如何解决类型' System.Web.Routing.RouteValueDictionary'存在于两者中

时间:2016-09-07 09:56:15

标签: c# visual-studio-2010 visual-studio-2008

如何在不同的程序集中命名两个名称空间? 或者唯一的解决方案是在命名空间中添加别名?

这是一个完整的错误

The type 'System.Web.Routing.RouteValueDictionary' exists in both  
   'c:\Windows\assembly\GAC_MSIL\System.Web.Routing\3.5.0.0__31bf3856ad364e35\System.Web.Routing.dll' 
and 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.dll'

我试图将一个旧项目从Visual Studio 2008(它在这里工作)移动到VS 2010.我正在使用 .net 3.5

我可以参考旧版本的System.Web.Routing,但我很困惑为什么它在VS 2008中运行而不在VS 2010中

在两个项目中(相同的项目,但VS的不同版本)

参考System.Web.Routing引用相同的dll(具有相同的路径)`C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ v3.5 \ System.Web.Routing.dll'

并引用System.Web C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Web.dll

我试图将其称为System.Web.Routing.RouteValueDictionary,但错误仍然相同。

所以文档说明了

  1. Visual Studio 2008它位于Namespace:System.Web.Routing中 程序集:System.Web.Routing(在System.Web.Routing.dll中)
  2. Visual Studio 2010它位于Namespace:System.Web.Routing中 程序集:System.Web(在System.Web.dll中)
  3. 如果我删除System.Web.Routing的引用,而不能使用该命名空间中的类。

1 个答案:

答案 0 :(得分:1)

您似乎引用了旧程序集。在某些时候,RouteValueDictionary被移动到System.Web.dll中。比较这些:

https://msdn.microsoft.com/en-us/library/system.web.routing.routevaluedictionary(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/system.web.routing.routevaluedictionary(v=vs.90).aspx

检查您的参考文献,并清理和重建解决方案。