aspnet_compiler findet falsche Version von System.Web.WebPages 1.0.0.0 statt 2.0.0.0
Habe ich eine ASP.NET MVC4-Projekt, das kompiliert fein in VS2010. Für die Bereitstellung Zwecken betreibe ich eine Nant-Skript, das versucht, precompile, die website durch aspnet_compiler.exe aber ich laufen in eine assembly-Referenz-Problem mit dem System.Web.Webseite
Fehler CS1705: die Assembly " System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses ' - System.Web.Webseiten, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", die eine höhere version als die referenzierte assembly 'System.Web.Webseiten, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
Ich habe auch die folgende Montage-Bindungen in meinem web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
und meine csproj hat den folgenden Verweis:
<Reference Include="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<Private>True</Private>
<HintPath>..\packages\AspNetWebPages.Core.2.0.20126.16343\lib\net40\System.Web.WebPages.dll</HintPath>
</Reference>
InformationsquelleAutor der Frage Todd Smith | 2012-05-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich löste dieses problem, indem explizit auf die 2.0-assembly in der Web.config. Ich vermute, dass aus irgendeinem Grund, der ASP.NET compiler (in meinem Fall beim laufen
MvcBuildViews
), verwendet die alte 1.0 Montage der ersten, wenn es gefunden wird.BTW: Es sah aus wie dieses problem trat zum ersten mal nach ich habe eine 3rd-party ASP.NET MVC 3.0-Komponente. Die Komponente funktioniert einwandfrei durch die Versammlung bindend, aber es kann der Grund sein, warum die ASP.NET compiler versucht, laden Sie die web 1.0-Seiten ersten.
InformationsquelleAutor der Antwort hangy
Wir hatten ein ähnliches problem.
Sind wir nun mit Visual Studio 2012 für die Entwicklung und wenn wir Umgerechnet ein 2010-Projekt, 2012 und versucht zu implementieren, ASP.NET war erfordern 2.0.0.0 statt 1.0.0.0.
Nach einigen Recherchen sah ich, dass das Projekt nicht auf eine konkrete version des Systems.Web.Webseiten, so nach dem Upgrade auf VS 2012 es war das Auffinden der version 2.0.0.0.
Wenn Sie entfernen Sie den Verweis aus dem Projekt und anschließend erneut hinzufügen, die bestimmte version aus dem GAC, funktioniert es einwandfrei.
InformationsquelleAutor der Antwort TheNameless
Für uns, das problem war eine alte Kopie der entsprechenden DLL in den
_bin_deployableAssemblies
Ordner. Löschen dies hat uns richtig konfiguriert mit der 2.0 version.InformationsquelleAutor der Antwort Nicholas Blumhardt
Dieser Fehler tritt auch auf, für mich, wenn
MvcBuildViews
auf true gesetzt ist.Bemerkte ich, dass ich immer bekomme diese Fehlermeldung, wenn Gebäude die gesamte Lösung mit 'Build-Lösung". An diesem Punkt, wenn ich sofort baute das MVC-Projekt von selbst (Rechtsklick auf das Projekt dann Bauen), das MVC-Projekt erfolgreich erstellen.
Es scheint, dass der Aufbau der MVC-Projekt von selbst gelingen würde, solange es nicht ausgelöst baut auf seinen hing Projekte (dh. Sie sind up-to-date). Aber bauen mit "Build-Lösung" schlägt immer fehl mit dieser Fehlermeldung.
InformationsquelleAutor der Antwort rememberjack
Erlebte ich dieses problem beim aktualisieren einer Website von MVC 3 zu 5.2.3.0.
Mein Problem war nicht das hinzufügen von TFS-die Pakete und die zugehörigen DLL ' s von der nuget-installation.
Ich Sie manuell Hinzugefügt haben, die folgenden Ordner in den packages Ordner der Lösung.
Microsoft.AspNet.Razor.3.2.3
Microsoft.AspNet.Webseiten.3.2.3
Microsoft.Web.Infrastruktur.1.0.0.0
Einmal übergebene build-server hatte nicht mehr das Problem.
InformationsquelleAutor der Antwort CountZero
War es für mich ein Verweis auf
System.Web.WebPages.Administration v1.0.0.0
wer der übeltäter war. Einmal entfernt, alle arbeiteten ohne Web.config tweaks.InformationsquelleAutor der Antwort Tsar
Ich kratzte mein Kopf für eine Weile über diesem problem, wenn ich es hatte. Schließlich bemerkte ich, dass ich hatte den folgenden Abschnitt in der "runtime" Abschnitt meiner web.config.
Wie Sie sehen können, dies bezieht sich auf die version 2 von der Versammlung, die nicht mit dem folgenden code, der Sie auch in das system haben.web/Zusammenstellung/Baugruppen-Abschnitt der web.config.
Die aktuelle assembly verwiesen wird, Verweise für das Projekt ist tatsächlich die v1.0.0.0, also änderte ich das erste Stück code oben, um die folgenden, die fixen das problem sofort. Ich bin mir nicht sicher, wie die Fehler, hab es in den ersten Platz.
InformationsquelleAutor der Antwort centralscru
In diesem Fall, es lohnt sich ein 'in Dateien Suchen' über alle Dateien in Ihrer Lösung root-Ordner.
Für das obige Beispiel habe ich gesucht:
System.Web.WebPages, Version=1.0.0.0
Auf diese Weise können Sie loswerden der alle Verweise auf die alte version.
InformationsquelleAutor der Antwort Drew Noakes
Mir diese Frage wurde wahrscheinlich kaufen Sie eine Aktualisierung auf die neueste version .NETZ über den Web Platform installer, aber ich habe nicht die neueste version von ASP.NET MVC installiert. Die Aktualisierung dieser Über den Web Platform installer behoben die Probleme.
InformationsquelleAutor der Antwort jps
gehen Sie einfach auf Referenzen und suchen Sie nach System.Web.Mvc, version 4.0 oder mehr, und fügen Sie es. Ich fügen Sie einfach einen Verweis auf System.web.mvc-4.0.0.1 und es funktioniert.
Vergessen Sie nicht, entfernen Sie ältere mvc-version.
InformationsquelleAutor der Antwort Vonic Maheshwari
Löschen und Re-Hinzufügen der Referenz-System.Web.Mvc Hat den job für mich
InformationsquelleAutor der Antwort Mashhood