asp.net - titel - title tag generator




Wie zwingen Sie Visual Studio, die.designer-Dateien für aspx/ascx-Dateien neu zu generieren? (20)

Manchmal, wenn ich die Seite oder das Steuerelement bearbeite, werden die .designer-Dateien nicht mehr mit den neuen Steuerelementen aktualisiert, die ich auf die Seite lege. Ich bin mir nicht sicher, was das verursacht, aber ich frage mich, ob es eine Möglichkeit gibt, Visual Studio zu zwingen, die .designer-Datei neu zu erstellen. Ich verwende Visual Studio 2008

EDIT: Tut mir leid, ich hätte merken sollen, dass ich es schon versucht habe:

  • Schließen und erneutes Öffnen aller Dateien und Visual Studio
  • Eine Änderung an einem runat = "server" Steuerelement auf der Seite vornehmen
  • Löschen und erneutes Hinzufügen der Seitendirektive

  1. Ersetzen Sie Ihr benutzerdefiniertes Tag durch einen ungültigen Tag-Namen. Speichere es
  2. Stellen Sie den Namen des ungültigen Tags wieder auf den Namen des benutzerdefinierten Tags ein. Speichere es. Anschließend werden Sie aufgefordert, die * .designer.cs-Dateien auszuchecken (oder die Designer.cs-Datei automatisch zu ändern) und die korrekte Variable für die benutzerdefinierte Tag-Steuerung zu erstellen.

(Das Folgende stammt aus der Erfahrung mit VS2005.)

Wenn Sie eine ASPX-Seite beim Debuggen bearbeiten, wird das Codebehind nicht mit den neuen Klassen aktualisiert. Also, Sie müssen aufhören zu debuggen, trivial bearbeiten Sie die ASPX-Seite (wie eine Schaltfläche oder etwas hinzufügen), klicken Sie dann auf Design-Ansicht, dann löschen Sie die Schaltfläche. Dann sollten Ihre Designer-Dateien aktualisiert werden.

Wenn Sie ein anderes Problem mit VS2008 haben, kann ich nicht helfen.


Die meisten Lösungen hier funktionieren nicht, wenn Sie Visual Studio 2013 und möglicherweise 2012 ausführen. Microsoft hat wahrscheinlich einige Optimierungen eingeführt, um die IDE schneller zu machen, folglich haben sie die Anzahl der Fälle reduziert, die den Codegenerator auslösen. Die folgenden Szenarien funktionierten nicht mehr:

  1. Löschen Sie die aspx- oder ascx-Datei - überprüft nicht mehr auf diesen Fall
  2. Schneiden Sie den gesamten Inhalt und neu in die aspx oder ascx-Datei - funktioniert nicht mehr, keine Änderung in den Referenzen
  3. In Webanwendung konvertieren - Option nicht mehr verfügbar
  4. Beliebiger Inhalt in der aspx / ascx-Datei ändern - funktioniert nicht mehr (siehe 2).

Die Lösung ist überraschend einfach, aber es ist leicht umständlich. Um den Codegenerator auszulösen, ändern Sie etwas, für das die Designer.aspx.cs generiert werden müssen. Durch das Ändern von Inhalt, der keinen Einfluss auf den Code hat, z. B. ein CSS-Stil oder das Hinzufügen von Text, wird der Code-Generator nicht ausgelöst. Sie müssen ein referenziertes Steuerelement ändern. Hier ist, wie es geht:

Im ascx oder aspx ändern Sie die ID des Controls

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />

zu

<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />

Gehen Sie zur ascx.cs oder aspx.cs und stellen Sie sicher, dass Sie alle Verweise auf "MyLink" auch auf "theLINK" umbenennen. Rette und baue und du solltest gut gehen.


Dies ist ein Fehler in der IDE; Ich habe es seit VS 2003 gesehen. Die Lösung ist jedoch einfach.

Speichern Sie Ihre Dateien. Beenden Sie die IDE vollständig (stellen Sie sicher, dass der Prozess beendet wird, Task mgr.)

Erneutes Öffnen der Lösung, Versäubern des Markups, Speichern. Fest.


Eine Sache, die niemand erwähnt hat, ist die Seite zu besuchen . Ich habe meine Designer-Datei nicht mehr regenerieren lassen, weil ich ein Benutzer-Steuerelement hinzugefügt hatte, das nicht existierte (aus verschiedenen Gründen), und keines der hier vorgeschlagenen Dinge funktionierte. Aus irgendeinem Grund habe ich in Visual Studio keine Fehler erhalten - abgesehen von dem, der sich darüber beschwert hat, dass meine clientseitigen Steuerelemente nicht existierten, weil sie natürlich nicht neu generiert wurden.

Es dauerte wirklich, die Seite zu besuchen, um ASP.Net zu bekommen, um mir den Fehler zu erzählen.


Eine andere Sache, die funktioniert hat, war -

  1. Löschen Sie manuell & erstellen Sie dann eine Designer-Datei im Dateisystem.
  2. Projektdatei bearbeiten
  3. Fügen Sie Code zum Enthalten des Designers hinzu
    ZB: <Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
  4. Projekt neu laden
  5. Als (c / p) x Datei im Design / View-Modus öffnen & speichern.
  6. Überprüfen Sie die Designer-Datei. Code wird da sein.

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

Sameer


Ich benutze die folgende Methode, die jedes Mal funktioniert:

  • Wählen Sie den gesamten Code-in-Front (HTML-Markup usw.) im Editor der aspx / ascx-Datei.
  • Schnitt.
  • Sparen.
  • Einfügen.
  • Sparen.

Neu kompilieren.


Ich habe einen Weg gefunden, dieses Problem zu lösen, ohne Code zu ändern oder Befehle wie "In Webanwendung konvertieren" auszuführen - und es ist auch einfach!

Was ich fand, war, dass das Neustarten von Visual Studio oft das Problem löst, aber manchmal nicht. Wenn Sie in diesen Fällen Visual Studio schließen und dann den gesamten Inhalt im Verzeichnis "obj" für das Webprojekt löschen, bevor Sie es erneut öffnen, hat es immer für mich funktioniert.

(Wenn Sie erneut gestartet haben, fügen Sie einfach ein Leerzeichen ein und entfernen es erneut und drücken dann auf Speichern, damit die Designer-Datei ordnungsgemäß neu generiert wird.)


Ich habe kürzlich gesehen, dass ich das gleiche Problem hatte. Visual Studio 2010 hat die Aktualisierung der Designerdatei verweigert.

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

Ich änderte es in CodeBehind und speicherte die Seite. Die Designer-Datei wurde sofort aktualisiert. Dann habe ich es einfach wieder geändert und alles war noch golden. Dieses Verhalten scheint mit VS 2010 / .NET 4.0 neu zu sein, da VS 2008 standardmäßig nicht darunter leidet.

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.


Ich hatte dieses Problem und für mich hatte ich einen Platz in einem meiner ID-Werte für eines meiner Steuerelemente. Ich nahm den Raum heraus und die Designer-Datei regenerierte sich neu.



Innerhalb des Visual Studio:

1) Entfernen Sie Ihre aspx.designer.cs-Datei

2) Rechtsklick auf Ihre Aspx-Datei und wählen Sie "In Webanwendung konvertieren" Dies sollte die aspx.designer.cs zurück und auf den neuesten Stand bringen.

Wenn Sie eine Fehlermeldung erhalten, die besagt:

"Generierung der Designerdatei ist fehlgeschlagen: Die Methode oder Operation ist nicht implementiert."

Schließen Sie Visual Studio, und öffnen Sie Ihr Projekt erneut, und führen Sie Schritt Nummer zwei erneut aus

Wie generiere ich aspx.designer.cs im Visual Studio?


Klicken Sie im Lösungs-Explorer einfach mit der rechten Maustaste und wählen Sie "In Web-Anwendung konvertieren". Es wird alle Designerdateien erneut generieren.


Meine Erfahrung ist, dass, wenn Sie wie in this Artikel, wie oben beschrieben tun möchten.

Ihre Markup-Datei (aspx / ascx) muss das Attribut CodeBehind = "MyPage.aspx.cs" enthalten, ansonsten funktioniert es nicht. Ich habe hier darüber gebloggt.


Nun, ich habe eine Lösung gefunden, die funktioniert, obwohl ich sie nicht wirklich mag. Ich musste die .designer.cs Datei löschen und dann eine leere Datei mit dem gleichen Namen neu erstellen. Als ich zurück ging und die aspx-Datei erneut speicherte, wurde die Designer-Datei neu erstellt.

Zwielichtig!


Wenn Sie VS2013 oder höher verwenden, stellen Sie sicher, dass der Code, auf den mit dem Attribut "CodeBehind" verwiesen wird, nicht "CodeFile" ist, 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, falls sie bereits existiert "yourControl.ascx.designer.cs")
  • in der ascx (oder aspx) kopieren alle code, löschen sie, dann speichern. wiederhole es nochmal, dann speichere.
  • Die Designerdatei sollte jetzt ausgefüllt werden.

Wenn Sie die ASPX-Datei öffnen und zwischen Entwurfsansicht und HTML-Ansicht und zurück wechseln, wird VS aufgefordert, die Steuerelemente zu überprüfen und fehlende Elemente zur Designerdatei hinzuzufügen.

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

PS: Dies sollte nicht im Debug-Modus erfolgen, da beim Debuggen nicht alles "neu kompiliert" wird.

Einige Personen haben ebenfalls Erfolg gemeldet, indem sie die Datei .designer.cs gelöscht haben und anschließend eine leere Datei mit demselben Namen neu erstellt haben.


Wenn Sie wie ich sind und Sie alte .ASPX-Dateien zu einem neueren Projekt hinzufügen. Wahrscheinlich werden Sie einige der auf der Seite verwendeten Steuerelemente vergessen.

Wenn ja, zuerst, wenn es mehrere Dateien gibt, die Sie installieren; Zu einem Zeitpunkt zuerst.

Kompilieren Sie bei der Kompilierung die generierten Fehler. Sie werden wahrscheinlich die gleichen Fehler in allen Dateien sein.

Wenn Sie Designer-Dateien haben, löschen Sie als Nächstes alle eingefügten Designer-Dateien. Stellen Sie als Nächstes sicher, dass beim Kompilieren keine anderen Fehler auftreten als die Designerdateien.

Klicken Sie mit der rechten Maustaste auf Ihr Webprojekt und klicken Sie auf In Webanwendung konvertieren. Dadurch werden die Designerdateien eingefügt, die Sie benötigen.

Dies sind die absolut besten Schritte, um die Probleme zu beheben.


TL; DR;
Bearbeiten Sie das Inherits Attribut der Inherits Page-Direktive der ASPX-Seite und @Page auf Speichern. Ihre Designerdatei sollte neu generiert werden.

Stellen Inherits sicher, dass Inherits = <Namespace>. <Klassenname> und CodeBehind = <Klassenname> .aspx.cs

Ich habe versucht, dies in einem Sharepoint 2010-Projekt mit VS 2010 und TFS zu tun, und keine der oben genannten Lösungen funktionierte für mich. In erster Linie fehlt die Option "In Webanwendung konvertieren" im Kontextmenü der .ASPX-Datei, wenn TFS in VS 2010 verwendet wird.

Diese Antwort hat endlich geholfen . Meine Klasse sah so aus:

namespace MyProjects.Finance.Pages
{
    public partial class FinanceSubmission : WebPartPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        // more code
    }
}

Und meine @Page Anweisung war (Zeilenumbrüche zur @Page Übersicht):

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="FinanceSubmission.aspx.cs"
    Inherits="MyProjects.Finance.Pages.FinanceSubmission"
    MasterPageFile="~masterurl/default.master" %>

Ich habe zuerst die Inherits in MyProjects.Finance.Pages geändert, dann auf "Speichern" geklickt und sie wieder in " MyProjects.Finance.Pages.FinanceSubmission" geändert und erneut auf "Save" (Speichern) geklickt . Und Wallah! Die Designerseite wurde neu erstellt!

Hoffe, das hilft jemandem mit TFS!





visual-studio-2008