インポートされたタイプは複数回定義されます - モノ2.10.1のXbuildのみでのみ

StackOverflow https://stackoverflow.com/questions/5374978

質問

使用するコードをコンパイルする問題がある 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。

他のヒント

この問題は、複数のクラスで定義されているタイプを参照している場合に発生します。これを修正するには、参照を編集して、問題を引き起こしているDLLの1つをチェックすることができます。

Visual Studio/Xamarinのエラーを上回ると、このタイプが存在する複数の参照名が表示されます。確認して、1つの参照またはクラスのみを含めるだけです。

以下は、参照用のスクリーンショットです。

enter image description here

問題を修正した後:

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top