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

5voto

tommycode Punkte 163

Ich habe einen Weg gefunden, dieses Problem zu lösen, ohne Code zu ändern oder Befehle wie "Convert to Web Application" auszuführen - und es ist auch noch einfach!

Ich habe festgestellt, dass ein Neustart von Visual Studio das Problem oft löst, manchmal aber auch nicht. Wenn Sie in diesen Fällen Visual Studio schließen und dann alle Inhalte im Verzeichnis "obj" für das Webprojekt löschen bevor Sie es wieder öffnen. Das hat bei mir immer funktioniert.

(beim erneuten Starten fügen Sie einfach ein Leerzeichen ein und entfernen es wieder und klicken dann auf "Speichern", um die Designerdatei richtig neu zu generieren)

5voto

Johan Leino Punkte 3445

Meine Erfahrung ist, dass man, wenn man wie in este Artikel, wie oben erwähnt.

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

4voto

yertle Punkte 11

Wenn Sie sich in der Entwurfsansicht befinden, klicken Sie mit der rechten Maustaste auf den Bildschirm und wählen Sie Aktualisieren.

4voto

Vandesh Punkte 5438

Eine andere Sache, die funktionierte, war -

  1. Manuelles Löschen und anschließendes Erstellen einer Designerdatei im Dateisystem.
  2. Projekt bearbeiten Datei.
  3. Code zum Einbinden des Designers hinzufügen
    Beispiel: <Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
  4. Projekt neu laden
  5. Öffnen Sie die Datei as(c/p)x im Entwurfs-/Ansichtsmodus und speichern Sie sie.
  6. Designerdatei prüfen. Der Code wird dort zu finden sein.

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.

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