2012-06-28 15 views
21

Ich hatte dieses Problem vorher, aber dann musste ich nur das Projekt säubern und neu erstellen. Das scheint jetzt nicht mehr zu funktionieren. Wenn ich meinen Asp.Net MVC3 Projekt-Debugger starte, wird die Seite in meinem Browser geöffnet. Anstatt die erste Seite im Browser präsentiert bekommen, erhalte ich diesen FehlerKonnte Datei oder Assembly 'System.Web.WebPages' nicht laden

Parser Error Message: Could not load file or assembly 'System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. 

Source Error: 
Line 31:   <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
Line 32:   <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
Line 33:   <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
Line 34:  </assemblies> 
Line 35:  </compilation> 

Ich kann nicht scheinen, um herauszufinden, wie diese zu lösen. Irgendeine Idee?

+1

reinigen, schließen Sie das Studio, das Projekt erneut öffnen. – t3hn00b

+0

Sind System.Web.WebPages in Ihren Referenzen im Projekt? – Iain

+2

Ja ist es! Funktioniert nicht zum Reinigen und Schließen –

Antwort

17

Ich hatte dieses Problem. Vielleicht ist es passiert, als ich .NET MVC v4 über MVC v3 installiert habe, nicht sicher.

Wie auch immer, ich habe die System.Web.WebPages Referenz aus meinem Projekt entfernt. Dann wurden in der .NET-Registerkarte Referenz hinzufügen zwei System.Web.WebPages-Referenzen aufgelistet, eine Version 1.0.0.0 und eine 2.0.0.0. Ich habe dafür gesorgt, dass die Version 1.0.0.0 hinzugefügt wurde, da diese die fehlende war.

enter image description here

+0

Danke Jungs, führte dies zu der Lösung. In meinem Fall fehlte die gesamte DLL auf unserem Server. Basierend auf meiner Erfahrung wird WebPages 1.0 zusammen mit MVC3 installiert (wenn Sie es vorher nicht hatten), während es ein separates Paket für WebPages 2.0 in der MVC4-Installation gibt . Stellen Sie sicher, dass Sie die richtige Version installieren, auf die in Ihrer web.config verwiesen wird. – army

+1

Diese Lösung funktionierte für mich. Ich habe das Problem festgestellt, als ich das Target Framework von 3.5 auf 4.0 änderte. VS 2010 versuchte, hilfreich zu sein und ASP.NET MVC von 2.0 auf 4.0 zu aktualisieren, was sehr viele Kopfschmerzen verursachte. Durch einfaches Entfernen der System.Web.Mvc-Referenz und Hinzufügen der Version 2 wurde das Problem behoben. – jason

4

kratzte ich den Kopf für eine Weile über dieses Problem, wenn ich es hatte. Irgendwann fiel mir auf, dass ich im Abschnitt "runtime" meiner web.config den folgenden Abschnitt hatte.

<runtime> 
. . . 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
. . . 
</runtime> 

Wie Sie sehen können, bezieht sich dies auf die Version 2 der Baugruppe, die nicht den folgenden Code übereinstimmt, die Sie auch in der system.web/Kompilierung/Baugruppen Abschnitt von web.config haben.

<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

Die eigentliche Montage in Referenzen für das Projekt verwiesen wird, ist in der Tat v1.0.0.0, so änderte ich den ersten Teil des Codes oben auf die folgenden, die das Problem sofort behoben. Ich bin mir nicht sicher, wie der Fehler überhaupt erst gekommen ist.

<runtime> 
. . . 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /> 
     </dependentAssembly> 
. . . 
</runtime> 
+0

Danke, das fixt es für mich. Die Referenz enthielt v2.0, die web.config enthält die v1.0. – Carra

1

ich dieses Problem hatte, alles, was ich tun musste, war die Eigenschaft der externen Referenz ändern: Spezielle Version von Wahr zu Falsch

Danach erstellen Sie das Projekt erneut.

3

für mich gearbeitet:

  1. Tools -> NuGet Package Manager -> Manage NuGet Pakete für Lösung

  2. Durchsuchen

  3. Suche nach "Microsoft.AspNet.WebPages"

  4. Stellen Sie sicher, dass alle Projekte in der Lösung über die neueste Version verfügen.

0

Ich habe dasselbe Problem für MVC5 holen.

Zuerst überprüfen Sie Ihre System.Web.WebPages Versammlung von der Referenz Ihres Projektes.

  1. Wenn nicht gefunden, dann hinzufügen, indem Sie wählen hinzufügen Referenz von Projekt-Referenz.
  2. Wenn gefunden, die Prüfversion von Eigenschaften dieser Referenz. Dann überprüfen Sie Ihr Projekt web.config Datei. Kann sein, dass diese zwei Versionen nicht übereinstimmen.

Für mich, ich füge eine Referenz der Version 2.0.0.0 hinzu. aber meine web.config-Datei verweisen sie von

<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />

und ich ändere es

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />

es für mich in MVC5 funktioniert.

Bitte markieren Sie den markierten Bereich in meinem Anhang für mehr Abstand.

System.Web.WebPages

0

zum Menü gehen: "Extras/Nuget Package Manager/Package Manager Console"

Fahrbefehl install-package Microsoft.AspNet.WebPages

Verwandte Themen