Frage

Ich mag eine Klassenbibliothek aktualisieren (eine einzelne DLL-Datei) in einer Produktions Web-Anwendung. Diese Web-App wird vorkompiliert (veröffentlicht). Ich las eine Antwort auf Stackoverflow (sorry, nicht scheint, kann es nicht mehr zu finden, weil die Suchfunktion nicht sehr gut funktioniert), das mich dazu gebracht zu glauben, dass ich gerade die neue DLL in dem Ordner ist einfügen könnte und es würde abgeholt werden up ohne Probleme (dies würde die WP zu recyceln verursachen, was für mich in Ordnung ist, weil wir verwenden InProc Sitzungszustand nicht).

Allerdings, wenn ich das versuchte, bläst meine Seite und gibt einen Fileloadexception sagen, dass die Assembly-Manifest-Definition nicht die Montagereferenz entspricht. Was in der Welt ist das ?! Aktualisieren des DLL in Visual Studio und die gesamte Website neu Bereitstellung funktioniert gut, aber es ist ein großer Schmerz im Hintern. Was ist der Punkt, eine separate DLL zu haben, wenn Sie die gesamte Website neu bereitstellen müssen, um alle Änderungen zu implementieren?

Hier ist die Frage: Wie kann ich eine DLL auf einer Produktions Website aktualisieren, ohne die App zu brechen und ohne alle Dateien Wieder bereitstellen?

War es hilfreich?

Lösung

Das ist daran zu erinnern ist, dass es Web-Seiten und Web-Anwendungen so weit wie Visual Studio und ASPNET angesehen wird.

Websites haben in der Regel alle der aspx und vb Dateien auf den Live-Server veröffentlicht und ASPNET-Arbeitsprozess neu kompilieren die Anwendung jedes Mal vor der Vorstellung.

Auf der anderen Seite ist die Web-Anwendung, wo alle Ihre Code-behind-Dateien in einer einzigen DLL-Datei erhalten zusammengestellt, und Sie einfach implementieren Ihre aspx Seiten und Sie Ordner bin mit der DLL-Datei zur Produktion.

Es gibt auch eine "Hybrid", bekannt als " vorkompilierte Websites “(den Link zur offiziellen MSDN Übersicht sehen), wo Sie für Sie nicht das einzige DLL des Layout einer Web-Anwendung, aber die alle Kompilierung Arbeit der Website erfolgt. Es gibt mehrere „Modi“, um diese je nach Ihren Bedürfnissen.

Es scheint mir, dass Ihr Fehler verursacht wird, weil Ihre Website als eine Website mit irgendeiner Art von Precompilieren in Kraft gesetzt wird. das vorkompilierte-Modell ist ein wenig mehr „streng“, dass ist davon ausgegangen, bestimmte Dateien / Signaturen vorhanden ist. eine aktualisierte Version der DLL-Datei zu haben bewirkt, dass eine Pause, da die Vorübersetzung einen Namen und eine Version der Datei will.

Wenn möglich, ist Ihre beste Wette wäre, zu einer Web-Anwendung zu konvertieren, da Sie die zusätzlichen DLLs in der Produktion ohne Probleme hinzufügen. Ansonsten nehmen Sie einen Blick auf dieser Matrix zu sehen, was Form von Precompilieren Sie benötigen für Ihre Anwendung.

Andere Tipps

Schauen Sie sich die SO Post, könnte das sein, was Sie sich beziehen. Die befindet Assembly manifest Definition entspricht nicht der Montage Referenz

Haben Sie einen Blick auf Ihre Referenz. Ist es „bestimmte Version = true“ sagen? Setzen Sie ihn auf false, veröffentlichen Sie Ihre App (Sie es einmal zu tun haben, weil jetzt die App noch für eine Baugruppe mit einem bestimmten Manifest suchen) und versuchen Sie es erneut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top