インポートされたタイプは複数回定義されます - モノ2.10.1のXbuildのみでのみ
-
28-10-2019 - |
質問
使用するコードをコンパイルする問題がある HttpContextBase
コンパイルエラーをスローしています:
UserService.cs(13,26): error CS0433: The imported type `System.Web.HttpContextBase' is defined multiple times
問題の行は次のとおりです。
private readonly HttpContextBase httpContext;
コードの行を取り出したり、コメントしたりすると、エラーがなくなり、アセンブリがコンパイルされます。
別のプロジェクト(これのテストプロジェクト)では、同じエラーが宣言しようとするときに同じエラーが発生します。 HttpContextBase
このオブジェクトのコンストラクターに渡す。したがって、それはクロスプロジェクトの問題のようです。
これはプロジェクトファイルの問題ですか? (複数の参照を見つけることができません System.Web
そこで)。私がいくつかの変更を加える前にそれはコンパイルされていました AfterBuild
ステップ、だから私はCSProjファイルで何かを台無しにしたのではないかと心配しています。
これは、Xbuildを使用してコンパイルするためにモノデベロムトランクビルドセットを使用して、Mono 2.10.1を使用して構築されています。
デフォルトのMonoDevelopビルド動作を使用してコンパイルされても、このエラーは発生しません。
解決
the The The The System.web.httpcontextbaseは、.net 3.5 sp1のsystem.web.abstractions.dllで定義されていましたが、.net 4.0のsystem.web.dllで定義されました。つまり、system.web.abstractions.dllのタイプへの参照を含むDLLをコンパイルしたことを意味します。
system.web.abstractions.dllのローカルコピーがあるように見えます。 web.dll。