Probleme mit einem MVC4-Anwendung versucht, auf ein neuere version des Systems.Web.Webseiten.Razor
Habe ich gearbeitet, auf einem mvc4 Webanwendung für die letzten paar Monate. Alles lief Super bis Freitag, wenn ich lief ein update-Paket in nuget, um sicherzustellen, dass ich hatte die letzten Versionen meiner Bibliotheken.
Wenn ich jetzt versuchen um alles in der Anwendung, es sagt mir, dass es den Fehler
Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Ich habe meine web.config und meine Pakete.config und nirgends bin ich verweisen auf System.Web.WebPages.Razor, Version=3.0.0.0
Ich habe ein dependentAssembly-block auf meiner Website.config mit der version 2.0.0.0
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
darauf geachtet, dass die web -.config in meinen Ansichten-Verzeichnis gibt auch v2.0.0.0
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
Hab ich auch gemacht sicher, dass die version verwiesen wird, in meinen Referenzen ist 2.0.0.0. Ich habe versucht, es zu entfernen und readding es. Ich habe versucht, machen Sie sicher, dass der server die aktuellste version von der .net framework installiert ist.
Getestet hab ich das sowohl auf dem server und lokal, und bekommen die selbe Fehlermeldung.
Lokal sehe ich dies in der Fehler-log - LOG: Post-policy reference: System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Aber ich kann nicht finden alle Informationen auf, was verursacht, dass.
Entwickle ich es in Visual Studio 2012 premium.
Jemand irgendwelche Ideen?
- Einer Ihrer NuGet-Pakete ist wahrscheinlich auf Sie verweisen.
- Sind Sie targeting framework 4.0 oder 4.5? Wenn Ihr Projekt 4.0 " und die aktualisierte Paket verwendet 4.5 haben Sie zwei Möglichkeiten: downgrade Ihres nuget oder aktualisieren Sie Ihre framework 4.5
- Ich bin targeting 4.5. Ich habe ein Rollback auf die vorherigen änderungen, und alles funktioniert wieder einwandfrei. Aber ich fürchte, ich bin update-meine Abhängigkeiten jetzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist das dein problem. Ich habe lief in ähnliche Probleme, die mich ein paar mal. Obwohl, es neigt zu geschehen, vor allem, wenn der Umgang mit mehreren Projekten in einer Lösung; ich bin mir nicht sicher, ob das gilt in Ihrem Fall. Dennoch ist die Frage läuft darauf hinaus, die tatsächlichen Projekt-Referenz wurde "aufgerüstet", aber Ihr web.config und Pakete.config nicht verweisen auf die aktualisierte Paket. Wenn Sie gehen in Ihrem Projekt auf und zeigen Sie die Eigenschaften auf der Rasierklinge Referenz, ich würde Wetten, Dollar, um dimes sagt, dass es 3.0.0.0 gibt. Sie können entweder den Verweis entfernen und neu hinzufügen, indem-browsing in das bin-Verzeichnis des unteren versioniert Paket oder aktualisieren Sie es vollständig.
Wie gesagt, dies tritt in der Regel in multi-Projekt-Lösungen, wenn Sie ein upgrade für eine Projekt, aber nicht die andere. Der einfachste Weg, es zu beheben ist auf nuget-Pakete verwalten für die gesamte Lösung. Du wirst dann wahrscheinlich sehen, dass mehrere anzeigen für Razor, wo man ist geprüft, für ein oder mehrere Projekte, aber einige nicht und Umgekehrt. Entfernen Sie die ältere version von Razor (deaktivieren Sie die damit verbundenen Projekte), für die die ältere version und anwenden. Dann gehen Sie zurück zu der neuen version von Razor und es gelten für alle Projekte, es fehlt.
Ich hatte dasselbe problem, mein WCF-Dienst nicht funktioniert. Lösung war das löschen System.Web.Mvc.dll aus meinen PAPIERKORB-Ordner.
Ich hatte das gleiche problem, außer dass, wenn man durch die Schritte beschrieben, in der Chris Pratt Antwort-System.Web.Websites.Razor war noch mit version 2.0.0.0, obwohl ich nur gegangen war, durch den Prozess der Aktualisierung es zu 3.0.0.0 über NuGet.
Was am Ende zu fixieren, für mich war die deinstallation der MVC-Paket mit NuGet und installieren Sie es erneut (und damit Neuinstallation von seinen Abhängigkeiten: System.Web.Websites und System.Web.Rasiermesser)
Für mich alles was ich tun musste, war die änderung "Spezielle Version" von False auf True und es begann zu arbeiten.
Rechten Maustaste auf die Baugruppe (in Referenzen) und auf seinen Inhalt Menü wählen Sie Eigenschaften, um die Eigenschaften auf der Visual Studio-Registerkarte "Eigenschaften". Unter seinen look für eine Lokale Kopie-Eigenschaft und sicherzustellen, dass seine auf True gesetzt.
Check Produkt-version Ihres System.Web.Razor.dll Datei in der web-Anwendung im bin-Verzeichnis. Folgende Abbildung zeigt die falsche version (2.0.20715.0):
Folgende Bild zeigt die richtige version (3.0.11001.0):