【问题标题】:How to resolve The type 'System.Web.Routing.RouteValueDictionary' exists in both如何解决两者中都存在类型'System.Web.Routing.RouteValueDictionary'
【发布时间】:2016-09-07 09:56:14
【问题描述】:

如何区分不同程序集中的两个命名空间? 还是唯一的解决方案是给命名空间添加别名?

这是一个完整的错误

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)

Reference 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 在命名空间中:System.Web.Routing 程序集:System.Web.Routing(在 System.Web.Routing.dll 中)
  2. Visual Studio 2010 在命名空间中:System.Web.Routing 程序集:System.Web(在 System.Web.dll 中)

如果我删除对 System.Web.Routing 的引用,我将无法使用该命名空间中的类。

【问题讨论】:

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


    【解决方案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

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

    【讨论】:

    • 感谢分享我已经提出问题的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多