web-dev-qa-db-fra.com

Erreur Visual Studio 2010 Designer lors de l'exécution

J'utilise VS2010 et si un formulaire est ouvert en mode concepteur et que j'exécute mon application, l'onglet Concepteur n'affichera plus le concepteur de formulaire mais une erreur s'affichera (elle ne sera corrigée qu'en redémarrant l'EDI) en disant:

"Pour éviter toute perte de données avant le chargement du concepteur, les erreurs suivantes doivent être résolues:"

1 erreur:

"Le concepteur n'a pas pu être affiché pour ce fichier car aucune des classes Qu'il contient ne peut être conçue. Le concepteur a inspecté les classes Suivantes dans le fichier: ##### --- La classe de base ## Ne peut pas charger. #. Assurez-vous que l’assemblage a été référencé et que tous les projets ont été construits "

Je montre ensuite la pile d'appels suivante:

à System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument (gestionnaire IDesignerSerializationManager)
sur System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad (gestionnaire IDesignerSerializationManager)
sur Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad (IDesignerSerializationManager serializationManager)
sur System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad (hôte IDesignerLoaderHost) 

Toute aide est grandement appréciée, c’est vraiment agaçant.

Merci,

Joel.

26
Joel

Je reçois aussi ce bogue de Visual Studio de temps en temps, et j'ignore profondément le texte d'erreur, mais je fais plutôt ce qui suit:

  1. Fermer l'onglet Design
  2. Rouvre le mode Création en double-cliquant dans l'Explorateur de solutions ou en cliquant avec le bouton droit de la souris sur l'onglet Code source et en sélectionnant Concepteur de vues.
  3. Soudain tout fonctionne à nouveau!

Si cela ne vous aide pas, vous devrez peut-être remplacer la puce 2 par: Fermez et redémarrez Visual Studio.

Peut-être que cela peut vous aider.

29
Jack Johnstone

J'ai l'habitude de fermer le formulaire visuel, de reconstruire la solution, de cliquer avec le bouton droit de la souris, puis de sélectionner "concepteur de vue" dans le code du formulaire.

Très très énervant. Je pense revenir à VS2008.

-Markus

6
MarkusR

Fermez le formulaire. Nettoyez la solution. Reconstruisez la solution. Rouvrez le formulaire. Travaillé pour moi quand rien d'autre ne le ferait. 

3
KingOfHypocrites

J'avais le même problème et je pouvais le résoudre en créant un nouveau projet, puis en le compilant et en l'exécutant, puis en important tous les fichiers et en exécutant le projet à nouveau;.

2
Riaz

Je peux éviter de redémarrer VS en procédant comme suit

  1. Ajouter un nouveau contrôle utilisateur
  2. Faites glisser et déposez-y certains de vos contrôles utilisateur personnalisés (si cela vous donne une erreur, générez à nouveau la solution).
  3. Rouvrez votre contrôle.

Dans mon cas, j'ai un projet Winforms avec plusieurs contrôles personnalisés utilisés par d'autres contrôles personnalisés. Chaque fois que j'ouvre certains de ces contrôles personnalisés, l'erreur "La classe de base ..." est générée. L'ajout d'un nouveau contrôle personnalisé, la construction du projet, puis l'ajout de certains contrôles personnalisés de mon projet au nouveau contrôle personnalisé m'ont permis d'ouvrir les contrôles personnalisés qui me donnaient l'erreur "La classe de base ...".

UPDATE: Je pense avoir trouvé le problème. Mes contrôles n'ont pas été "ajoutés" correctement au fichier csproj. Dans le fichier csproj, les fichiers des classes partielles de contrôles/composants de l'interface utilisateur ont besoin de l'attribut 'DependentUpon'.

E.x.:.__avant:

<Compile Include="Windows\Forms\DataGridView.cs">
    <SubType>Component</SubType>
</Compile>
<Compile Include="Windows\Forms\DataGridView.Designer.cs" />

après:

<Compile Include="Windows\Forms\DataGridView.cs">
    <SubType>Component</SubType>
</Compile>
<Compile Include="Windows\Forms\DataGridView.Designer.cs">
    <DependentUpon>DataGridView.cs</DependentUpon>
</Compile>
2
Hasani Blackwell

Dans une situation où un contrôle utilisateur personnalisé semblait créer l'erreur (vous ne savez pas pourquoi), j'ai donc supprimé les références au contrôle utilisateur du formulaire et l'erreur a disparu.

1
John M

Il semble qu'après l'installation de SP1, le problème ait disparu.

Merci pour votre aide tout le monde.

0
Joel

J'ai eu le même problème en utilisant un contrôle avec des génériques 

      MvpUserControl<Presenter,IViewMode> : UserControl

ce que je fais c'est supprimer la référence et ajouter à nouveau, nettoyer et reconstruire la solution J'espère que cela pourra être utile à quelqu'un d'autre

0
Kmilo

"Dans le fichier de projet (.vcxproj), recherchez l’entrée correspondant à la version cible Framework. Par exemple, si votre projet est conçu pour utiliser le .NET Framework 4.5, recherchez V4.5 dans le dossier. élément de l'élément. "

(Microsoft)

Dans mon cas, la "v4.5" n’existait pas, je l’ajoute, et tout va bien maintenant. 

0
user7101931

J'ai essayé une solution propre et une solution de reconstruction et j'ai travaillé pour moi . J'espère que cela vous aidera!

0
Tiến Dũng

Ne codez pas dans Form1.Designer.cs . Déplacez votre logique vers Form1.cs (tapez F7 sur Form1.cs [Design] tab).

0

J'ai eu le même problème avec VS2010 SP1. Enfin, avec Windows Update, j’ai vu des mises à jour pour Visual Studio et .Net, je les ai installées et ne se produit plus.

Ancien post, mais pour ceux qui peuvent trouver cela ...

Je viens de courir à cette erreur et pour moi, c'était un correctif relativement simple.

Nous avons constaté que cela pouvait avoir un rapport avec les noms de vos classes et renommé la classe problématique en ordre supérieur. C’est l’ordre alphabétique dans l’Assemblée (où A est supérieur à Z).

Article MSDN

Bonne chance.

0
JSmith

Cette erreur se produit si la classe Form n'est pas une première classe du fichier, par exemple s'il existe une classe d'assistance au début du fichier.

Pour résoudre ce problème, déplacez toutes les autres classes sauf la classe Form au bas du fichier.

0
Tomas Kubes