2016-09-07 6 views
2

どのようにして異なるアセンブリで2つの名前空間を区別できますか? 唯一の解決策は、名前空間にエイリアスを追加することですか?ここで解決方法どのタイプの 'System.Web.Routing.RouteValueDictionary'も両方に存在します

は、VS 2010年に私が.NET 3.5

を使用しています(それはここでは動作します)私は、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' 

完全なエラーです

旧バージョンのSystem.Web.Routingを参照できますが、なぜVS 2008で動作し、VS 2010で動作しないのか混乱しています

両方のプロジェクト(同じプロジェクトですがVSの異なるバージョン)

参照System.Web.同じ名前の同じ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のために、それは名前空間であるthaht

    ので、ドキュメントは言う: アセンブリをSystem.Web.Routing:(System.Web.Routing.dll中)System.Web.Routingが

  2. Visual Studio 2010ことがあります(のSystem.Web.dll内)のSystem.Web

私はその名前空間のクラスを使用傾けるよりも、私はSystem.Web.Routingのための参照を削除する場合: アセンブリをSystem.Web.Routing:名前空間インチ

答えて

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

は、あなたの参照をチェックしてもきれいなソリューションを行い、再構築します。

+2

私はalredyが質問に入れたリンクを共有しています。 – 1392023093user

関連する問題