Comment forcer Visual Studio à régénérer le.fichiers de création pour fichiers aspx / ascx?

parfois quand je édite la page ou contrôle le .les fichiers designer cessent d'être mis à jour avec les nouveaux contrôles que je mets sur la page. Je ne sais pas ce qui a provoqué ça, mais je me demande s'il y a un moyen de forcer Visual Studio à le régénérer .concepteur de fichier. J'utilise Visual Studio 2008

EDIT: Désolé, je devrait avoir noté, j'ai déjà essayé:

  • fermeture et réouverture de tous les dossiers & Visual Studio
  • faire un changement à un contrôle runat= "server" sur la page
  • supprimer et ajouter de nouveau la directive page
375
demandé sur Glenn Slaven 2008-09-05 10:21:06
la source

30 ответов

Si vous ouvrez le .fichier aspx et de basculer entre la vue de conception et html et retour il demandera à VS de vérifier les contrôles et d'ajouter ceux qui manquent à le fichier de concepteur.

dans VS2013-15 Il y a un convertir à L'Application Web commande sous le projet menu. Avant VS2013 cette option est disponible dans le menu contextuel pour que(c/p)x fichiers. Lorsque cela est fait, vous devriez voir que vous avez maintenant une *.Designer.fichier cs disponible et vos commandes dans le Design HTML seront disponibles pour votre contrôle.

PS: cela ne doit pas être fait en mode débogage, car tout n'est pas "recompilé" lors du débogage.

certaines personnes ont également rapporté le succès en supprimant le .designer.fichier cs et ensuite recréer un fichier vide avec le même nom.

356
répondu Espo 2016-02-13 15:55:34
la source

Eh bien, j'ai trouvé une solution qui fonctionne, bien que je ne l'aime pas vraiment. J'ai dû supprimer le .designer.cs fichier, puis recréer un fichier vide avec le même nom. Lorsque je suis retourné sauvegarder le fichier aspx, le fichier designer a été généré de nouveau.

Dodgy!

83
répondu Glenn Slaven 2009-08-03 04:28:17
la source

j'utilise la méthode suivante qui fonctionne à tout moment:

  • sélectionnez Tout le code devant (HTML markup etc) dans l'éditeur du fichier aspx/ascx.
  • coupé.
  • Save.
  • Paste.
  • Save.

Recompile.

76
répondu Ruvan Fernando 2009-01-29 19:19:44
la source

j'ai vu récemment que j'avais le même problème. Visual Studio 2010 refusait de mettre à jour le dossier du créateur.

comme il s'avère, VS ne modifie pas le fichier de concepteur pour une page qui utilise le fichier CodeFile (run off of pages) au lieu de CodeBehind (DLL). Ceci est vrai peu importe le nombre de fois où vous fermez VS, rechargez le projet, recréez le(S) contrôle (s), ou modifiez un fichier. Rien n'inciterait VS à régénérer le designer. C'est comme si elle ne crée pas le concepteur fichier pour CodeFile pages, mais ne l'exigent d'être là.

Je l'ai changé en CodeBehind et j'ai sauvegardé la page. Le fichier designer mis à jour immédiatement. Puis je l'ai changé et tout était encore doré. Ce comportement semble être nouveau avec VS 2010 / .NET 4.0 comme VS 2008 par défaut n'a pas souffert de cela.

c'est cette partie:

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

Changement CodeFile à Code-behind, enregistrer, puis revenir.

59
répondu Geoff 2011-01-22 23:18:08
la source

Il y a une autre possibilité: Vous pouvez avoir une erreur dans votre .fichier aspx qui ne permet pas à Visual Studio de régénérer le créateur.

si vous passez à la vue de conception, il affichera la commande comme impossible à rendre. La fixation de la commande (dans mon cas, il s'agissait d'un devis supplémentaire dans les propriétés) et la recompilation devrait régénérer le concepteur.

36
répondu y0mbo 2008-10-07 02:05:54
la source

la plupart des solutions ici ne fonctionnent pas si vous utilisez Visual Studio 2013 et peut-être 2012. Microsoft a probablement introduit quelques optimisations pour rendre L'IDE snappier, par conséquent ils ont réduit le nombre de CAs qui déclenchent le générateur de code. Les scénarios suivants qui fonctionnaient auparavant ne fonctionnent plus:

  1. supprimer le fichier aspx ou ascx -- ne vérifie plus ce cas
  2. couper tout le contenu et le dégoût dans l'aspx ou fichier ascx -- ne fonctionne plus, aucun changement dans les références
  3. convertir en Application Web -- Option non disponible
  4. modifier arbitrairement le contenu du fichier aspx/ascx ne fonctionne plus (voir 2).

la solution est étonnamment simple, mais elle est un peu lourde. Afin de déclencher le générateur de code, changez quelque chose qui nécessiterait le concepteur.aspx.cs doit être généré. Changer le contenu qui ne affect code, comme un style CSS ou l'ajout de texte, ne déclenchera pas le générateur de code. Vous devez changer un contrôle référencé. Voici comment faire:

dans l'ascx ou aspx changer L'ID de la commande

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

à

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

aller à l'ascx.cs ou aspx.cs et assurez-vous que vous renommer toutes les références à "MyLink" à "theLINK" ainsi. Enregistrer et faire construire et vous devriez être bon d'aller.

21
répondu ATL_DEV 2014-01-30 03:36:02
la source

la seule façon que je sais Est de supprimer le fichier designer, et faire un Convertir à l'application web. Cependant quand vous faites cela, il apparaît habituellement avec l'erreur, comme à la raison pour laquelle il n'a pas auto-regen en premier lieu, son habituellement un ref de contrôle qui n'est pas déclaré dans la tête de la page.

14
répondu DevelopingChris 2008-09-09 18:28:10
la source

convertir en Application Web n'a pas fonctionné pour moi.

Supprimer designer.cs et collant un designer vierge.cs n'a pas fonctionné non plus.

Mais oui cela a fonctionné:

  1. Sélectionnez-les tous(valeur par Défaut.aspx)
  2. Couper
  3. Enregistrer Par Défaut.aspx
  4. Coller
  5. Enregistrer Par Défaut.aspx

fait. Nouveau designer.cs généré. :)

8
répondu O D 2014-02-14 13:41:38
la source

j'ai souvent constaté que copie/collage a causé ce comportement pour moi. La plupart des cas peuvent être résolus en éditant L'ID d'un contrôle de serveur (il suffit d'ajouter un caractère, puis de le supprimer).

se rappeler aussi que le contrôle à l'intérieur des choses comme les répéteurs ne sont pas visibles dans le fichier de concepteur.

et oui, il y a des cas où vous devez faire la magie de supprimer le fichier énuméré ci-dessus-mais la solution de changement de nom fonctionnera la plupart du temps.

6
répondu Overflew 2009-05-11 06:57:54
la source

j'ai trouvé un moyen de résoudre ce problème sans changer de code ou exécuter des commandes comme "Convert to Web Application" - et c'est simple aussi!

ce que j'ai trouvé, c'est que redémarrer Visual Studio résout souvent le problème, mais parfois non. Dans ces cas, si vous fermez Visual Studio et puis supprimez tout le contenu dans le répertoire" obj "pour le projet web avant de l'ouvrir à nouveau, il a toujours fonctionné pour moi.

(une fois redémarré, il suffit d'ajouter un espace et de le supprimer à nouveau, puis de cliquer sur Enregistrer pour avoir le fichier designer régénéré correctement)

5
répondu tommycode 2013-02-01 13:21:42
la source

(La suite vient de l'expérience avec VS2005.)

si vous éditez une page ASPX pendant le débogage, alors le codebehind ne sera pas mis à jour avec les nouvelles classes. Ainsi, vous devez arrêter de déboguer, modifier trivialement la page ASPX (comme Ajouter un bouton ou quelque chose), puis cliquer sur la vue de conception, puis supprimer le bouton. Ensuite, vos fichiers designer devraient être mis à jour.

si vous avez un problème différent avec VS2008, alors je ne peux pas vous aider.

4
répondu EndangeredMassa 2008-09-05 10:26:24
la source

lorsque vous êtes en mode Création, faites un clic droit sur l'écran et appuyez sur rafraîchir.

4
répondu yertle 2010-09-14 10:08:43
la source

une autre chose qui a fonctionné était -

  1. supprimer manuellement puis Créer un fichier de créateur dans le système de fichiers.
  2. Modifier le Projet "151980920 de fichier".
  3. ajouter le code pour inclure le concepteur

    Par exemple: <Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
  4. Projet De Rechargement
  5. ouvrir en tant que Fichier(c/p)x en mode design/view & enregistrer.
  6. Vérifier le fichier du concepteur. Code être là.
3
répondu Vandesh 2013-11-12 09:17:36
la source

si vous utilisez VS2013 ou plus tard, assurez-vous que le code référencé avec l'attribut "CodeBehind" pas "CodeFile", puis faire ci-dessous les étapes

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>
  • créez une page designer vide (ou effacez-la si elle existe déjà" votre control.ascx.designer.cs")
  • dans l'ascx (ou aspx) copier tout le code , le supprimer, puis enregistrer. re-passé à nouveau , puis sur enregistrer.
  • le fichier de créateur doit être rempli maintenant.
3
répondu Tarek El-Mallah 2015-02-11 21:56:30
la source
  • Sélectionner tout dans le fichier de concepteur et de tout supprimer dans le fichier, laissant le champ vide, puis enregistrer
  • Sélectionner-tout dans le fichier ASPX/ASCX et tout couper, puis tout recoller ""
  • le fichier de créateur aurait dû régénérer le code
2
répondu Mark Cidade 2008-10-07 02:09:16
la source

voici ce que j'ai connu , Sélectionnez le dossier du site Web Clic droit dans L'Explorateur de solutions, sélectionnez Convertir à l'application Web pour tout le fichier aspx un fichier de concepteur sera généré.

Olivier

2
répondu sameer 2010-01-15 22:30:20
la source

juste pour ajouter à la longue liste de réponses ici - je viens de tomber sur ce problème dans VS2010 (SP1) avec un .fichier aspx. J'ai essayé d'ajouter et de supprimer les contrôles ASP standard (qui ont fonctionné dans le passé) mais à la fin, j'ai dû supprimer l'une des runat=server lines d'un contrôle existant (et enregistrer) pour forcer le fichier de concepteur à se régénérer.

2
répondu Rory Solley 2012-06-28 17:44:13
la source

j'ai rencontré le même problème depuis des années maintenant, en travaillant dans Visual Studio 2008. Et j'ai essayé toutes les "solutions" sur StackOverflow et des douzaines de blogs, tout comme je suis sûr que vous tous l'avez fait. Et parfois ça marche, et parfois ça ne marche pas, comme je suis sûr que vous avez tous rencontré. Et apparemment c'est toujours un problème dans VS2010 et VS2012.

donc finalement, il y a quelques mois, j'ai décidé que c'était assez, et en quelques semaines j'ai construit un outil appelé "Redesigner" qui génère .concepteur de fichiers. C'est open-source sous la licence BSD , avec le code source disponible sur SourceForge - libre d'utiliser, libre de voler, libre de faire tout ce que vous voulez. Et il fait ce que Visual Studio échoue à faire si souvent, qui est générer .concepteur des fichiers rapidement et de manière fiable.

il s'agit d'un outil autonome de ligne de commande qui analyse .aspx et .ascx file, effectue toute la magie de réflexion nécessaire, et crache dehors correct. concepteur de fichiers. Il fait tout le parsing et la réflexion elle-même pour éviter de compter sur le code existant, que nous savons tous trop bien est cassé. Il est écrit en C# contre .NET 3.5, mais il fait des efforts pour éviter d'utiliser le système Pair.Web pour tout autre que des déclarations de type, et il n'utilise pas ou ne compte pas sur Visual Studio du tout .

Redesigner peuvent générer de nouvelles .des fichiers de designer; et il offre une option -- verbose de sorte que lorsque les choses vont mal, vous obtenez bien meilleurs messages d'erreur que " Exception du système de type.L'Exception a été lancée."Et il y a une option --verify qui peut être utilisée pour vous dire quand votre existant .les fichiers de designer sont cassés-contrôles manquants, mauvaises déclarations de propriété, illisibles par Visual Studio, ou tout simplement borked.

nous l'avons utilisé sur mon lieu de travail pour nous sortir des embâcles pour la majeure partie du mois dernier, et bien que Redesigner soit encore une beta, il va assez loin que il vaut la peine de partager son existence avec le public. J'ai bientôt l'intention de créer un plugin Visual Studio pour cela afin que vous puissiez tout simplement faire un clic droit pour vérifier ou régénérer les fichiers de designer comme vous l'avez toujours souhaité. Mais dans l'intervalle, la ligne de commande utilisation est assez simple et vous permettra d'économiser beaucoup de maux de tête.

de toute façon, allez télécharger une copie de Redesigner maintenant et arrêtez de tirer vos cheveux . Vous n'aurez pas toujours besoin, mais quand vous le faites, vous serez heureux vous l'avez!

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

2
répondu Sean Werkema 2013-01-21 10:23:37
la source

TL; DR;

Éditez l'attribut Inherits de la directive @Page de la page ASPX et cliquez sur Enregistrer. Votre concepteur de fichier doit être régénéré.

S'assurer que Inherits = . et CodeBehind = .aspx.cs


j'essayais de le faire sur un projet Sharepoint 2010, en utilisant VS 2010 et TFS , et aucun des solutions ci-dessus ont fonctionné pour moi. principalement, l'option "Convert to Web Application" manque dans le menu du clic droit du .Fichier ASPX lors de L'utilisation de TFS dans VS 2010.

cette réponse Aida finalement . Ma classe ressemblait à ceci:

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

        // more code
    }
}

et ma @Page directive était (ligne-pauses ici pour plus de clarté):

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

j'ai d'abord modification des projets Inherits en .Finance.Pages , cliquez sur Enregistrer, puis changez de nouveau pour MyProjects.Finance.Page.FinanceSubmission et cliquez sur Save again. Et wallah! La page designer a été régénérée!

Espérons que cela aide quelqu'un à l'aide de TFS!

2
répondu SNag 2017-05-23 15:10:33
la source

dans le studio visuel:

1) Retirez votre aspx.designer.fichier cs

2) Faites un clic droit sur votre fichier aspx et sélectionnez " Convertir à une Application Web" Cela devrait ajouter l'aspx.designer.cs arrière et jusqu'à ce jour.

si vous avez une erreur disant:

" la génération de fichier de créateur a échoué: la méthode ou l'opération n'est pas implémentée."

essayer studio visuel proche et puis rouvrir votre le projet et l'étape numéro deux de nouveau

comment générer aspx.designer.cs dans visual studio?

2
répondu nouman arshad 2017-05-23 15:10:33
la source

supprimer le créateur.cs de fichier et puis cliquez droit sur l' .aspx fichier et choisissez "Convertir À l'Application Web". S'il y a un problème avec vos déclarations de contrôle, comme une balise qui n'est pas bien formée, vous recevrez un message d'erreur et vous devrez corriger la balise malformée avant que visual studio ne puisse recréer avec succès votre fichier de concepteur.

Dans mon cas, à ce stade, j'ai découvert que le problème était que j'avais déclaré un bouton de contrôle que n'était pas à l'intérieur d'une balise de formulaire avec un runat="server" attribut.

1
répondu 3 revsMax Lancaster 2009-02-10 22:52:37
la source

c'est un bug dans L'IDE; je l'ai vu depuis VS 2003. La solution est pourtant simple.

Enregistrez vos fichiers. Quittez complètement l'IDE (assurez-vous que le processus s'arrête, tâche mgr.)

rouvrez la solution, salissez le markup, économisez. Fixe.

1
répondu bcweis 2010-04-30 10:25:09
la source

j'ai eu deux problèmes... ajaxcontrolkit obsolète-supprimé l'ancienne dll, a supprimé les vieux contrôles de la boîte à outils, téléchargé une nouvelle version, boîte à outils chargée, et traîné et laissé tomber de nouveaux contrôles sur la page (voir http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Studio_.NET_2005/Q_24591597.html )

avait aussi une faute d'orthographe dans mon contrôle d'étiquette (j'avais utilisé "class" au lieu de "cssclass").

Ta

1
répondu user381377 2010-07-08 08:55:37
la source

Si vous êtes comme moi et que vous ajoutez vieux .Les fichiers ASPX à un projet Plus Récent. Vous allez probablement d'oublier certains contrôles utilisées sur la page.

si oui, première chose, s'il y a plusieurs fichiers que vous installez; Corriger une à une première.

lors de la compilation, corrigez les erreurs générées. Ils seront probablement les mêmes des erreurs dans tous les fichiers.

ensuite, si vous avez des fichiers de créateur, supprimez tous les insérés - concepteur de fichiers. Ensuite, assurez-vous il n'y a pas d'autres erreurs lors de la compilation, autres que le concepteur de fichiers.

enfin clic droit sur votre projet web et cliquez sur Convertir en Application Web. Ceci insérera les fichiers de création dont vous avez besoin.

ce sont les meilleures étapes absolues pour résoudre les problèmes.

1
répondu Carlo 2012-01-04 17:50:30
la source

une chose que personne n'a mentionnée est de visitez la page . J'ai fait arrêter la régénération de mon fichier designer parce que j'incluais un contrôle d'utilisateur qui n'existait pas (pour diverses raisons), et aucune des choses suggérées ici n'a fonctionné. Pour n'importe quelle raison, je n'ai pas eu d'erreurs dans Visual Studio - à part celle qui se plaignait du fait que mes commandes côté client n'existaient pas parce qu'elles n'étaient pas régénérées, bien sûr.

il a fallu en fait, visiter la page pour obtenir ASP.Net pour me dire l'erreur.

1
répondu Tacroy 2012-05-18 03:11:29
la source

cela peut aussi se produire si vous mettez à jour l'espace de noms et que vous ne mettez pas à jour l'espace de noms dans le fichier designer. Correction: mettre à jour l'espace de noms dans le fichier designer aussi.

1
répondu Ben Weeks 2012-07-13 12:51:40
la source

dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris et sélectionnez Convertir en application web. Il va générer tous les fichiers designer à nouveau.

1
répondu user3911976 2016-03-17 23:48:28
la source
  1. remplacez votre étiquette personnalisée par un nom d'étiquette invalide. Le sauver
  2. restaurer le nom de l'étiquette invalide retour au nom de l'étiquette personnalisée. L'enregistrer. Ensuite, vous serez invité à vérifier le *.designer.fichiers cs (ou modifier silencieusement le concepteur.cs) et produire la variable correcte du contrôle d'étiquette personnalisé.
0
répondu osexp2000 2010-01-29 10:13:41
la source

j'ai eu ce problème et pour moi, j'avais une place dans mes valeurs d'ID pour l'un de mes commandes. J'ai pris l'espace et le fichier de concepteur régénérée.

0
répondu Ritter 2010-02-22 01:58:57
la source