Frage

Ein Problem haben, bei dem Code kompiliert wird, das verwendet wird HttpContextBase Wirf den Kompilierfehler:

UserService.cs(13,26): error CS0433: The imported type `System.Web.HttpContextBase' is defined multiple times

Die beleidigende Linie ist:

private readonly HttpContextBase httpContext;

Wenn ich diese Codezeile herausnehme oder kommentiere, verschwindet der Fehler und die Baugruppe kompiliert.

In einem anderen Projekt (das Testprojekt für dieses) tritt der gleiche Fehler auf, wenn versucht wird, a zu deklarieren HttpContextBase an den Konstruktor dieses Objekts weitergeben. Es scheint also ein Cross-Project-Problem zu sein.

Ist dies eine Projektdateiprobleme? (Ich kann nicht mehr als einen Verweis auf finden System.Web da drin). Es wurde zusammengestellt, bevor ich einige Änderungen an der AfterBuild Schritt, also mache ich mir Sorgen, dass ich etwas in der CSProj -Datei durcheinander gebracht habe.

Dies basiert mit Mono 2.10.1, wobei der Monodevelop -Trunk -Build verwendet wird, um XBuild zu kompilieren.

Das Kompilieren mit dem Standard -Verhalten von Monodevelop Build erzeugt diesen Fehler nicht.

War es hilfreich?

Lösung

Tthe types System.web.httpContextBase wurde in System.Web.abstractions.dll in .net 3.5 sp1 definiert, aber in System.web.dll in .net 4.0. Dies bedeutet, dass DLLs mit Verweise auf den Typ in System.Web.abstractions.dll "typed" an System.web.dll "kompiliert wurden.

Sie scheinen eine lokale Kopie von System.web.abstractions.dll in /Users/shimms/development/convergence/lib/system.web.abstractions.dll, wahrscheinlich der .net 3.5 -Version, zu haben, die mit dem 4.0 -System in Konflikt geraten würde. Web.dll.

Andere Tipps

Dieses Problem tritt auf, wenn Sie auf einen Typ verweisen, der in mehreren Klassen definiert ist. Um dies zu beheben, können Sie Ihre Referenz bearbeiten und eine der DLLs deaktivieren, was das Problem verursacht.

Wenn Sie den Fehler in Visual Studio/Xamarin über den Fehler schweben, wird der Name mit mehreren Referenzen angezeigt, in dem dieser Typ existiert. Überprüfen Sie einfach und geben Sie nur eine Referenz oder Klasse an.

Im Folgenden finden Sie den Screenshot für Ihre Referenz.

enter image description here

Nach der Behebung des Problems:

enter image description here

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top