432 Stimmen

Wie erzwingen Sie Visual Studio, um die .designer-Dateien für aspx/ascx-Dateien neu zu generieren?

Wenn ich eine Seite oder ein Steuerelement bearbeite, werden die .designer-Dateien manchmal nicht mehr mit den neuen Steuerelementen aktualisiert, die ich auf der Seite einfüge. Ich bin nicht sicher, was die Ursache dafür ist, aber ich frage mich, ob es eine Möglichkeit gibt, Visual Studio zu zwingen, die .designer-Datei neu zu generieren. Ich verwende Visual Studio 2008

EDIT : Entschuldigung, ich hätte erwähnen sollen, dass ich es bereits versucht habe:

  • Schließen und erneutes Öffnen aller Dateien und von Visual Studio
  • Änderungen an einem runat="server"-Steuerelement auf der Seite vornehmen
  • Löschen und erneutes Einfügen der Seitenrichtlinie

388voto

Espo Punkte 40386

Wenn Sie die .aspx-Datei öffnen und zwischen der Entwurfsansicht und der Html-Ansicht umschalten und zurück, wird VS aufgefordert, die Steuerelemente zu überprüfen und fehlende Steuerelemente der Designerdatei hinzuzufügen.

In VS2013-15 gibt es eine In Webanwendung konvertieren Befehl unter dem Projekt Menü. Vor VS2013 war diese Option im Rechtsklick-Kontextmenü für as(c/p)x-Dateien verfügbar. Wenn dies geschehen ist, sollten Sie sehen, dass Sie jetzt eine *.Designer.cs-Datei zur Verfügung haben und Ihre Steuerelemente innerhalb des Design-HTML für Ihr Steuerelement verfügbar sind.

PS: Dies sollte nicht im Debug-Modus durchgeführt werden, da beim Debuggen nicht alles "neu kompiliert" wird.

Einige Leute haben auch von einem Erfolg berichtet, indem sie eine Sicherungskopie ihrer .designer.cs-Datei erstellt und dann die .designer.cs-Datei gelöscht haben. Legen Sie eine leere Datei mit demselben Namen neu an.

Es gibt viele Kommentare zu dieser Antwort, die Tipps dazu geben, wie man die Datei designer.cs am besten neu erstellt.

103voto

Glenn Slaven Punkte 32691

Nun, ich habe eine Lösung gefunden, die funktioniert, auch wenn sie mir nicht wirklich gefällt. Ich musste die Datei .designer.cs löschen und dann eine leere Datei mit demselben Namen neu erstellen. Als ich zurückging und die aspx-Datei erneut speicherte, wurde die Designer-Datei neu generiert.

Zwielichtig!

88voto

Ruvan Fernando Punkte 185

Ich verwende die folgende Methode, die jedes Mal funktioniert:

  • Wählen Sie alle Code-in-Front (html-Auszeichnung usw.) im Editor der aspx/ascx-Datei.
  • Schnitt.
  • Sparen.
  • Einfügen.
  • Sparen.

Neu kompilieren.

67voto

Geoff Punkte 111

Ich habe vor kurzem gesehen, dass ich das gleiche Problem hatte. Visual Studio 2010 hat sich geweigert, die Designer-Datei zu aktualisieren.

Wie sich herausstellt, ändert VS die Designerdatei für eine Seite nicht, die CodeFile (von Seiten ausgeführt) anstelle von CodeBehind (DLL) verwendet. Dies gilt unabhängig davon, wie oft Sie VS schließen, das Projekt neu laden, das/die Steuerelement(e) neu erstellen oder eine Datei ändern. Nichts würde VS auffordern, den Designer neu zu generieren. Es ist so, als ob die Designerdatei für CodeFile-Seiten nicht erstellt wird, aber sie muss vorhanden sein.

Ich habe es in CodeBehind geändert und die Seite gespeichert. Die Designerdatei wurde sofort aktualisiert. Dann änderte ich sie einfach wieder zurück und alles war immer noch in Ordnung. Dieses Verhalten scheint neu zu sein mit VS 2010 / .NET 4.0 als VS 2008 standardmäßig nicht von diesem leiden.

Es ist dieser Teil:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>

Ändern Sie CodeFile in CodeBehind, speichern Sie, und kehren Sie dann zurück.

39voto

y0mbo Punkte 4542

Es gibt noch eine andere Möglichkeit: Möglicherweise haben Sie einen Fehler in Ihrer .aspx-Datei, der es Visual Studio nicht erlaubt, den Designer neu zu generieren.

Wenn Sie zur Entwurfsansicht wechseln, wird angezeigt, dass das Steuerelement nicht gerendert werden kann. Wenn Sie das Steuerelement korrigieren (in meinem Fall war es ein zusätzliches Anführungszeichen in den Eigenschaften) und neu kompilieren, sollte der Designer wiederhergestellt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X