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

3voto

Tarek El-Mallah Punkte 3770

Wenn Sie VS2013 oder höher verwenden, stellen Sie sicher, dass der Code mit dem Attribut "CodeBehind" und nicht "CodeFile" referenziert wird, und führen Sie dann die folgenden Schritte aus

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>
  • Erstellen Sie eine leere Designerseite (oder löschen Sie sie, wenn sie bereits vorhanden ist: "yourControl.ascx.designer.cs")
  • Kopieren Sie in der ascx (oder aspx) den gesamten Code, löschen Sie ihn, und speichern Sie ihn.
  • Die Designerdatei sollte jetzt ausgefüllt sein.

2voto

you y Punkte 1

Die Lösung, die bei mir funktioniert hat, ist:

Ich habe die Seite einfach kopiert und an der gleichen Stelle wieder eingefügt, dann die erste Seite umbenannt (wie auch immer sie heißen mag) und die kopierte Seite in die Originalseite umbenannt. Jetzt sind die Steuerelemente zugänglich.

2voto

sameer Punkte 1553

Hier ist, was ich erlebt habe, Wählen Sie die Website-Ordner mit der rechten Maustaste im Projektmappen-Explorer, wählen Sie Konvertieren in Web-Anwendung für alle aspx-Datei eine Designer-Datei wird generiert.

Sameer

2voto

Sean Werkema Punkte 3814

Ich habe das gleiche Problem seit Jahren, arbeiten in Visual Studio 2008 aufgetreten. Und ich habe versucht, jede "Lösung" auf StackOverflow und Dutzende von Blogs, wie ich bin sicher, dass alle von Ihnen haben. Und manchmal funktionieren sie, und manchmal nicht, genau wie ich bin sicher, dass alle von Ihnen haben begegnet. Und offenbar ist es immer noch ein Problem in VS2010 und VS2012.

Vor ein paar Monaten beschloss ich schließlich, dass ich genug hatte, und habe einige Wochen lang Ich habe ein Werkzeug namens "Redesigner" entwickelt, das .designer-Dateien erzeugt. Es ist Open-Source unter der BSD-Lizenz Der Quellcode ist auf SourceForge verfügbar - frei zu benutzen, frei zu stehlen, frei zu tun, was Sie wollen. Und es tut das, woran Visual Studio so oft scheitert, nämlich .designer-Dateien schnell und zuverlässig zu erzeugen.

Es ist ein eigenständiges Befehlszeilen-Tool, das .aspx- und .ascx-Dateien analysiert, alle notwendigen Reflection-Zaubereien durchführt und korrekte .designer-Dateien ausgibt. Es führt das gesamte Parsing und die Reflektion selbst durch, um zu vermeiden, dass es sich auf bestehenden Code verlässt, von dem wir alle nur zu gut wissen, dass er fehlerhaft ist. Es ist in C# gegen .NET 3.5 geschrieben, aber es bemüht sich, sogar System.Web für alles andere als Typendeklarationen zu vermeiden, und es verwendet Visual Studio nicht und ist auch nicht darauf angewiesen .

Redesigner kann neue .designer-Dateien erzeugen; und es bietet eine --verbose-Option, so dass Sie, wenn etwas schief geht, weitaus bessere Fehlermeldungen erhalten als "Exception of type System.Exception was thrown". Und es gibt eine --verify-Option, die verwendet werden kann, um Ihnen zu sagen, wenn Ihre bestehenden .designer-Dateien defekt sind - fehlende Steuerelemente, fehlerhafte Eigenschaftsdeklarationen, unlesbar für Visual Studio oder anderweitig schlichtweg fehlerhaft.

Wir verwenden es an meinem Arbeitsplatz schon seit einem Monat, um uns aus der Patsche zu helfen, und obwohl sich Redesigner noch in der Beta-Phase befindet, ist es schon weit genug fortgeschritten, dass es sich lohnt, seine Existenz mit der Öffentlichkeit zu teilen. Ich habe vor, bald ein Visual Studio-Plugin dafür zu erstellen, so dass Sie einfach mit der rechten Maustaste klicken können, um Designerdateien zu überprüfen oder neu zu generieren, so wie Sie es sich immer gewünscht haben. Aber in der Zwischenzeit ist die Verwendung der Befehlszeile ziemlich einfach und wird Ihnen eine Menge Kopfschmerzen ersparen.

Wie auch immer, Laden Sie sich jetzt Redesigner herunter und hören Sie auf, sich die Haare zu raufen. . Sie werden es nicht immer brauchen, aber wenn Sie es brauchen, werden Sie froh sein, dass Sie es haben!

https://sourceforge.net/projects/redesigner/

2voto

Rory Solley Punkte 1405

Nur um die lange Liste der Antworten hier hinzufügen - ich habe gerade in dieses Problem in VS2010 (SP1) mit einer .aspx-Datei ausgeführt. Ich habe versucht, Standard-ASP-Steuerelemente hinzuzufügen und zu entfernen (was in der Vergangenheit funktioniert hat), aber am Ende musste ich eines der folgenden Elemente entfernen runat=server Zeilen aus einem vorhandenen Steuerelement (und speichern), um die Neugenerierung der Designerdatei zu erzwingen.

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