2010-12-23 24 views
19

Ich bin ein Java-Entwickler und habe gerade angefangen, C# zu lernen, um ein paar Projekt zu entwickeln. Ich bin froh zu sehen, dass viele Java-Frameworks, mit denen ich arbeite (Log4j, Ant, Hibernate usw.), ihre .net-Versionen haben (log4net, nant, nhibernate).Log4net Referenz Assembly Ausgabe

Ich habe gerade ein Projekt und versucht log4net Montage Verweis in sie zu setzen, aber ich habe die folgende Warnung (gefolgt von 4 Fehler Ausfall informiert log4net Namespace und Klassen zu erkennen):

Die referenzierte Montag "log4net" konnte nicht aufgelöst werden, weil es eine Abhängigkeit von "System.Web, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" hat die nicht in dem aktuell gezielt Rahmen ist “. NETFramework, Version = v4.0, Profil = Client ". Bitte entfernen Sie Verweise auf Assemblies nicht in dem angepeilten Framework oder erwägen, Ihr Projekt neu zu targetieren.

Ich habe Bezug auf System.Web.ApplicationServices und System.Web.Services aber es funktioniert nicht. Jede Hilfe bei der Lösung dieses Abhängigkeitsproblems wird sehr geschätzt.

Dank

Antwort

28

UPDATE:

Wenn Sie immer noch diesen Fehler, du bist eine out-of-date mit der Version von log4net und Sie sollten prüfen, auf die current version Aktualisierung, die tut nicht das vollständige .NET 4.0-Framework benötigen. Danke an @Philippe für den Hinweis in einem Kommentar.


Ihr Projekt verweist auf das .NET 4.0 Client-Profil die System.Web nicht enthalten; Sie müssen tatsächlich auf das volle Framework verweisen.

Siehe How To: Target a Specific .NET Framework Version or Profile auf MSDN für Richtungen.

  1. In Visual Studio, öffnen Sie das Projekt, das Sie ändern möchten.
  2. Klicken Sie mit der rechten Maustaste auf das Projekt im Projektmappen-Explorer, und klicken Sie dann auf Eigenschaften.
  3. Suchen Sie im Projekt-Designer die Zielframework-Liste wie folgt.

  4. Klicken Sie für Visual Basic-Projekte auf die Registerkarte Kompilieren, und klicken Sie dann auf Erweiterte Kompilierungsoptionen. Die Target Framework-Liste befindet sich im Erweiterten Compiler-Einstellungen-Dialogfeld.
  5. Für Visual C# -Projekte befindet sich die Target Framework-Liste auf der Registerkarte Anwendung des Projekts Designer. Weitere Informationen finden Sie unter Anwendungsseite, Projekt-Designer (C#).
  6. Für Visual F # -Projekte befindet sich die Target Framework-Liste auf der Registerkarte Anwendung des Projekts Designer.
  7. Wählen Sie in der Liste Zielframework die gewünschte .NET Framework-Version oder das gewünschte Profil aus. Wenn Sie auf klicken, wird das Projekt entladen und wird erneut in der integrierten Entwicklungsumgebung (IDE) geladen. Das Projekt zielt jetzt auf die .NET Framework-Version ab, die Sie gerade ausgewählt haben.

Möglicherweise auch von Interesse ist Troubleshooting .NET Framework Targeting Errors.

+0

Das war sehr hilfreich. Das erste Projekt, das ich nach der Installation von Visual Studio 2010 erstellt habe, setzte das Ziel standardmäßig auf das Clientprofil – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

Wenn das Targeting des Clientprofils gültig war, sind die Antworten von Maciej und 101100 besser: Verwenden Sie die Version von log4net, die nicht von system.web (1.2 .11). – Philippe

+0

Danke für das Kommentieren, @Philippe - Ich habe die Antwort aktualisiert. –

6

Legen Sie fest, dass Ihr Projekt auf das ".Net 4.0 Framework" und nicht auf das ".Net 4.0 Framework-Clientprofil" im Dialogfeld "Projekteigenschaften" ausgerichtet ist.

1

Nur kleines Update. Dieses Problem wurde vor fast 3 Jahren protokolliert und wurde erst diesen Monat behoben. Daher sollte die nächste Version von log4net (nach 1.2.10) in Ordnung sein, um mit Client-Profil-Frameworks zu arbeiten.

https://issues.apache.org/jira/browse/LOG4NET-174

0

Als Referenz für zukünftige Benutzer:

Vergessen Sie nicht auch das Framework Sie zielen VERMEIDEN! (Ich selbst dachte, dass, weil alle Ordner (v4.0x, v2.0X, etc.) da waren, ich alle Frameworks hatte. NOT! Es stellt sich heraus, dass ich nur das .NET 4.0 Client-Profil installiert hatte mein System und finden konnte den System.Web, obwohl der richtige Rahmen gezielt wurde

Wie auch immer, Ihr benötigt .NET Framework hier herunterladen:. .NET Frameworks Microsoft Downloads

1

Wenn Sie diesen Fehler mit Version 1.2.11 bekommen Wenn Sie das Framework Ihres Projekts nicht ändern möchten, installieren Sie einfach die Version für das Clientprofil, das sich im Ordner net-cp in der Binärdistribution befindet.