Wir haben eine alte ASP.NET MVC 3-Webanwendung, die in VS2010 erstellt wurde und seit dem Sicherheitsupdate der letzten Woche nicht mehr kompiliert werden kann.
Das Problem ist, dass der Verweis auf System.Web.Mvc.dll fehlerhaft ist.
Wenn ich die Lösungsdatei auf unserem Buildcomputer öffne, auf dem das Sicherheitsupdate nicht ausgeführt wurde, und den Eigenschaftendialog für Referenzen-> System.Web.MVC öffne, sieht es einwandfrei aus.
Der Pfad lautet C: \ Programme \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll. Die Version ist 3.0.0.0
Wenn ich die Lösungsdatei auf einem Entwicklungscomputer öffne, auf dem das Sicherheitsupdate ausgeführt wurde, wird References-> System.Web.MVC als fehlend markiert. Wenn ich es entferne und versuche, es im Dialogfeld "Referenz hinzufügen" von VS2010 wieder hinzuzufügen, wird es nicht angezeigt.
Das Wandern im Internet hat mich zu Vorschlägen geführt, die MVC mit NuGet zu aktualisieren. Wir haben NuGet in unseren VS2010-Projekten nicht verwendet, daher scheint dies für diese Situation nicht ganz richtig zu sein. Ich habe es trotzdem versucht und am Ende ein halbes Dutzend fehlende Referenzen erhalten.
Wenn ich mir die Eigenschaften für "C: \ Programme \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll" im Windows Explorer ansehe, wird auf dem Buildcomputer die Version 3.0.0.0 angezeigt.
Wenn ich mir die Eigenschaften auf dem Entwicklungscomputer ansehe, sehe ich Version 3.0.50813.1.
Was ich brauche, ist eine Möglichkeit, die Art und Weise zu ändern, in der ich baue und ausführe, damit ich unabhängig davon, welche dieser beiden DLLs im .NET 3.0-Framework installiert ist, erstellen und ausführen kann.
Ideen?
Was ich versucht habe, hat nicht funktioniert
Erster Versuch - Wenn die Baugruppe fehlt, fügen Sie sie hinzu. Ich habe die alte fehlende Referenz gelöscht. Dann habe ich die DLL aus dem Ordner "ASP.NET MVC3 \ Assemblies" in einen Ordner in meinem Projekt kopiert. Stellen Sie es als "Immer kopieren" ein und fügen Sie es als Referenz hinzu.
Damit würde das Projekt in VS2010 kompiliert, aber als ich versuchte, die Seiten mit aspnet_compiler vorkompilieren zu können, erhielt ich Warnungen:
(0): warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy
Bisher konnte ich vermeiden, Laufzeitrichtlinien zu verstehen, aber ich habe versucht, dies in der web.config hinzuzufügen:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Versuchte es noch einmal und bekam die gleichen Warnungen.
Meine Frage ist - habe ich noch ein Problem? Oder wird ich es trotz der Warnungen lösen?
