2009-10-27 10 views
5

Ich habe eine relativ einfache Änderung an den MVC 1.0-Quellcode vorgenommen, um einen Fehler in der DropDownList HtmlHelper (discussed in another question) zu beheben.Installieren einer modifizierten Version von ASP.NET MVC

Ich war in der Lage, die MVC-Lösung neu zu erstellen, führte alle Tests, einschließlich der, die ich hinzugefügt hatte, um den Fehler zu zeigen, den ich reparierte, und baute eine neue DLL.

Aber wie benutze ich das?

Ich habe versucht, die neue MVC-DLL in das Projekt zu verschieben und alle Projektreferenzen zu ändern, um darauf zu zeigen, aber wenn ich versuche, die MVC-Website zu starten, gibt es eine Ausnahme, es gibt einen Konflikt zwischen meiner Version von MVC und der MVC im GAC.

Ich versuchte gacutil.exe zu verwenden, das eine vom GAC zu entfernen, aber es sagt, es nicht tun, weil es ein anderes Programm machen würde (die Microsoft Installer? Scheitern.

Was muss ich zu tun, um meine neu gebaute Version anstelle der „offizielle“ Version zu installieren?

Antwort

9

Wenn Sie es aus dem GAC ohne MVC Deinstallation entfernen möchten (die die Visual Studio-Vorlagen enthält, die Sie wahrscheinlich benötigen), müssen Sie dies in der Registrierung tun:

  • Suche Registrierungsschlüssel HKEY_CLASSES_ROOT \ Installer \ Assemblies \ Globale und mit System.Web.Mvc für Schlüsselstart aussehen - löschen Sie es

Jetzt sollten Sie in der Lage sein gacutil.exe zu verwenden System zu entfernen. Web.Mvc von der GAC, und Sie sollten Ihre Version aus Ihrem/bin-Ordner verwenden können.

+0

Danke, Jono, das war es. –

+0

Okay, das bringt MVC aus dem GAC und lindert den Konflikt, aber ich habe immer noch Teile des Codes, die versuchen, diese Version zu laden. Insbesondere löst BuildManger.CreateInstanceFromVirtualPath eine Ausnahme aus, die besagt, dass "MVC Version 1.0.0.0, public token = ... nicht geladen werden kann. Die Manifestdefinition stimmt nicht mit der Assemblyreferenz überein" Ich habe die Assemblyreferenz aus dem Web genommen. config und ersetze es mit einem generischen "add name =" System.Web.Mvc "(ohne die Details). Benötige ich eine Assembly umleiten, oder etwas? Was muss ich noch tun, damit es das neue akzeptiert –

+0

Okay, ich habe es. Ich hatte die Assembly-Verweise im Stamm web.config geändert, aber verpasste die Tatsache, dass der View-Ordner eine web.config enthält, und es hatte einige voll qualifizierte Referenzen, die ich hatte Wenn ich das getan habe, hat es funktioniert. –

0

Wie wäre es die Versionsnummer ändern, wenn Sie die geänderte MVC-Framework kompilieren?

Verwandte Themen