Ich habe ein Problem damit, dass VS 2010 anscheinend seine Fähigkeit verliert, ein UpdatePanel mitten in der Entwicklung zu laden, und es macht mich verrückt. Ich verwende VS2010 und erstelle ein Benutzersteuerelement mit .NET 3.5, das auf DNN 5.x abzielt.
Ich habe ein Steuerelement erstellt, das auf einer DNN-Website verwendet werden soll, die ein Update-Panel verwendet. Wenn ich die Steuerung per FTP auf die Website entwickle und darauf aufbaue, funktioniert alles gut. Ich entschied mich, die Entwicklung auf eine lokale Kopie von DNN zu verschieben und ein Webanwendungsprojekt für das Steuerelement zu erstellen. Am Anfang funktionierte alles gut. Nach einigen Builds habe ich folgende Fehler erhalten:
Der Name des Typs oder Namespaces 'UpdateProgress' existiert nicht in der Namensraum 'System.Web.UI.WebControls.WebParts' (Vermissen Sie eine Versammlung? Referenz?)
Der Name des Typs oder Namespaces 'UpdatePanel' existiert nicht in der Namensraum 'System.Web.UI.WebControls.WebParts' (Vermissen Sie eine Versammlung? Referenz?)
Ich dachte, ich hätte auf dem Weg etwas durcheinandergebracht und einen Verweis auf die Bibliotheken gemacht, also habe ich alles entladen und die Bibliotheksreferenzen neu geladen. Ich fuhr fort, den Fehler zu erhalten und konnte das Steuerelement nicht kompilieren. Schließlich habe ich beschlossen, das gesamte Projekt zu wiederholen und den Code, den ich bereits geschrieben hatte, zu importieren. Alles funktionierte gut, bis ein paar Builds später, als der gleiche Fehler auftauchte.
Ich habe alle die gleichen Schritte ausgeführt, die Referenzen entladen, neu geladen und schließlich das Projekt gelöscht. Jedes Mal, wenn ich ein neues Projekt erstelle und den exakt gleichen Code in die .ascx-Dateien kopiere, funktionieren sie gut ... für ein paar Builds. Letzte Nacht habe ich die Bibliothek zusammengestellt und die Änderungen getestet. Alles war großartig, also schloss ich das Projekt und schaltete die Maschine aus. Habe es heute Morgen eingeschaltet und die Buildfehler erhalten. Es ist, als hätte ich eine tickende Zeitbombe in meinem Computer, die diese Dinge einfach abschaltet.
Irgendwelche Ideen, was ich vermisse, könnten das verursachen? Ich weiß nicht, warum eine Bibliothek so flackern würde. Ich muss noch auf ein solches Problem mit einem anderen Projekt auf meinem lokalen Rechner stoßen, und ich möchte es wirklich nicht durch FTP auf die Website weiter entwickeln. Bleh!
Meine Lösung ist auch in diesen komischen Zustand geraten. Es trat nach dem Bearbeiten von Konflikten in der Web-Konfiguration auf, nachdem AnkhSVN zuletzt verwendet wurde. Der Fehler wurde nur auf der Seite angezeigt, die ich zu diesem Zeitpunkt in Visual Studio geöffnet hatte. Es sagte, dass es das UpdatePanel oder UpdateProgress in System.Web.UI nicht mehr finden konnte, was nicht sinnvoll war, weil ich diese Steuerelemente in meinen anderen Seiten verwende.
Die Korrektur :
Ziehen Sie einfach ein UpdatePanel aus der Toolbox auf die Seite, die den Fehler verursacht. Clean and Rebuild und du bist gut zu gehen. Sie müssen nur noch das UpdatePanel entfernen, das Sie gerade hinzugefügt haben.
Ich glaube, dass dies die Dinge wieder in die Lösung bringt, die ich nicht sehen konnte.
Wenn Sie die neue Datei web.config untersuchen, finden Sie Folgendes (oder etwas ähnliches). Ich konnte diese Compiler-Direktive ohne weitere Änderungen hinzufügen und erfolgreich kompilieren. ScriptManager befindet sich in der älteren Version der Erweiterung .dll und muss gebunden werden. Es scheint, dass das Erstellen einer neuen Website die Compiler-Direktiven hinzufügt, das Upgrade jedoch nicht.
%Vor% Ich hatte das gleiche Problem in allen meinen alten Projekten nach der Aktualisierung auf Framework 4.0. Ich habe viele Male versucht herauszufinden, warum das passiert ist und nichts, was ich gefunden habe, würde funktionieren. Mein Team verbrachte mehr als ein Jahr damit, das designer.vb
für UpdatePanel manuell zu aktualisieren, um bei jedem Wechsel des ASPX die richtige Referenz zu haben.
Das Problem ist in der Referenz der Projektdatei zu AjaxControlToolkit aufgetreten. Die Referenz in der Datei .vbproj
war versionsspezifisch für 3.5. Das Aktualisieren der DLL hat die Referenz also nicht aktualisiert. Die Lösung bestand darin, die AjaxControlToolkit-Referenz zu entfernen, das Projekt zu speichern und dann den Verweis auf AjaxControlToolkit.dll
hinzuzufügen.
Wenn Sie die Projektdatei in einem Texteditor geöffnet haben, haben Sie möglicherweise Folgendes gesehen:
%Vor%Wenn Sie alles richtig gemacht haben, sollte es so aussehen:
%Vor%Tags und Links asp.net updatepanel dotnetnuke