Problem mit PostSharp kann keine Assembly für system.web.mvc, Version = 3.0.0.0 finden, wenn kein Projekt darauf verweist

8

Ich benutze PostSharp, und das funktionierte gut. Kürzlich haben wir einige Projekte auf die MVC Version 5.2 aktualisiert. Heute habe ich ein altes Projekt geladen, das die Version 4.0 von MVC verwendet. PostSharp begann einen seltsamen Fehler beim Build zu melden:

%Vor%

Ich habe alle Projektreferenzen durchgesehen, und es gibt kein Projekt, das auf system.web.mvc, version=3.0.0.0 verweist. Alle Projekte verweisen auf 4.0.0.0 . Warum erwähnt es Version 3.0.0.0? Ist es vielleicht von einem GAC oder einer lokalen Installation zu finden?

Wenn ich PostSharp über die Projekteigenschaften deaktiviere, kompiliert das Projekt erfolgreich. Es muss also etwas mit PostSharp zu tun haben. Jede Hilfe würde sehr geschätzt werden, da ich über

verloren bin     
Karl Cassar 01.10.2014, 17:18
quelle

3 Antworten

22

Dieser Fehler tritt normalerweise auf, wenn einige Assemblys der dritten Partei auf eine ältere Version von System.Web.Mvc verweisen. Sie haben die verbindliche Umleitung in Ihrer web.config, aber Sie müssen PostSharp auch mitteilen, diese Konfiguration während des Builds zu verwenden. Sie können dies tun, indem Sie die Eigenschaft PostSharpHostConfigurationFile build auf den Pfad Ihrer * .config-Datei setzen.

%Vor%     
AlexD 03.10.2014 11:55
quelle
12

Fügen Sie den folgenden Code in Ihre [project] .csproj-Datei ein. Um dies zu erreichen, folgen Sie den Schritten:

  • Klicken Sie mit der rechten Maustaste in Ihr Projekt;
  • Projekt entladen;
  • Klicken Sie dann mit der rechten Maustaste in das entladene Projekt und klicken Sie auf Bearbeiten [Projekt] .csproj;
  • Suchen Sie nach einem Tag <Import Project von PostSharp;
  • Fügen Sie anschließend den folgenden Code direkt unter dem <Import Project .../> -Tag;
  • hinzu
  • Dann laden Sie das Projekt neu;

Code:

%Vor%

Ihr XML-Code sollte etwa so aussehen:

%Vor%     
Tanato 04.03.2015 20:53
quelle
2

Postsharp verweist möglicherweise intern auf MVC 3. Sie können eine verbindliche Weiterleitung in Ihrer web.config versuchen:

%Vor%     
Mrchief 01.10.2014 17:51
quelle