Comment faire pour résoudre VS2010 par le Concepteur Windows Form question (de la classe de base n'a pas pu être chargé)
Récemment, j'ai été faire une erreur dans le concepteur Windows Forms de VS2010SP1 lors de l'utilisation hérité UserControls.
L'erreur est
Le concepteur n'a pas pu être montré pour ce fichier, car aucun des
les classes peuvent être conçus. Le concepteur a inspecté le
les classes suivantes dans le fichier: DebugPanel --- La classe de base
INTERFACE utilisateur.Des panneaux.PanelBase' n'a pas pu être chargé. Assurer la
l'assemblée a été référencé et que tous les projets ont été construits.
PanelBase est un UserControl qui est définie dans la même classe de la bibliothèque comme DebugPanel qui implémente également une interface IPanel (qui est à son tour définie dans la même classe de la bibliothèque).
IPanel implémente une interface IBaseItem qui est définie dans une classe différente de la bibliothèque.
Nous avons donc
DebugPanel (Library UI.Shared2)
- PanelBase (Library UI.Shared2)
- UserControl (System.Windows.Forms - .NET4)
- IPanel (Library UI.Shared2)
- IBaseItem (Library Net.Common)
PanelBase est concevable correctement, le projet de tous les construit correctement et fonctionne mais quand j'essaie de concevoir toute hérité de contrôle de la designer ne. Ce n'est pas limité à la DebugPanel de contrôle, mais aucun contrôle héritant de PanelBase... j'ai aussi vu le problème avec d'autres commandes que j'utilise qui ont les mêmes hiérarchies d'héritage.
Je peut généralement résoudre le problème temporairement par le nettoyage de la bibliothèque de l'INTERFACE utilisateur.Partagée2, la fermeture de VS et puis l'ouvrir à nouveau, la reconstruction de la solution et l'ouverture du concepteur.
Ce sera ensuite travailler pour un court moment, puis commencer à échouer à nouveau.
Quelqu'un aurait-il des suggestions qui peuvent résoudre ce problème de façon permanente sans avoir à redémarrer VS?
Edit: je suis ciblage de la version complète .NET 4 avec toutes les bibliothèques.
- Essayez de cibler la version complète de .NET au lieu du Profil du Client.
- Excuses - j'ai oublié d'ajouter que je suis ciblage de la version complète .NET4. Au départ, j'étais seulement cibler le Profil du Client, mais j'ai pensé donner la version complète d'un seul coup!
- J'ai eu le même problème l'ouverture de quelques-uns de mes formes dans VS2010, mais je l'ai mis vers le bas à quelques la 3e partie des composants que nous utilisons .net 1.1 dans les classes de base. Ma situation était si mauvaise qu'il montre en rouge les messages d'erreur à chaque fois que j'essaie de l'ouvrir, de designer et de même il refuse d'enregistrer le code écrit à la main.Notre direction a décidé de ne pas renouveler les licences de la 3e partie ( .net 4 version). Donc je me retrouve habillage de ces contrôles dans un .net 4.0 enveloppe et ensuite utiliser ces commandes dans la base de composants maintenant tout fonctionne très bien :). Je ne sais pas si vous êtes dans la même situation.
- c'est une suggestion intéressante, et je n'aurais pas pensé (car sûrement il doit être compatible!) mais il pourrait être la source du problème, comme nous le faisons, en effet, utiliser une 3ème partie de la bibliothèque de cibles .NET 2 (de mémoire). Je vais donner un aller, merci.
Vous devez vous connecter pour publier un commentaire.
Je suggère de mettre votre classe de base dans un projet distinct. Comme vous le savez évidemment, le problème est que VS est en train de perdre la trace de certains des méta-informations, que vous pouvez faire pour trouver de cesser de fumer et de reconstruction. Si la classe de base est dans un projet distinct, propre/reconstruction est plus susceptible de le ramener à jour.
J'ai eu le même problème. J'ai eu une Forme de l'objet/objet de base, j'ai été héritant de, et tout d'un coup, je vois ce message pour toutes les Formes qui ont été héritant de la Base.
J'ai essayé de revenir en arrière et comprendre ce qui a changé récemment, et de souvenir, j'ai mis mon projet de Plate-forme Cible à partir de n'Importe quel CPU pour x64. Je l'ai changé à n'Importe quel CPU et le problème a résolu, et de définir ensuite de nouveau pour x64 toujours gardé le problème résolu.
C'était sur VS 2013, par la manière.
J'ai eu ce problème beaucoup récemment et a trouvé un moyen facile et rapide de contournement et a décidé de les partager (fonctionne pour moi sur VS 2012).
Lorsque vous disposez d'un Formulaire comme ceci:
et le concepteur ne parvient pas à concevoir
MyBaseForm
disantthe base class 'System.object' cannot be designed
, tout ce que j'ai à faire est de supprimer: MyBaseForm
et de revenir (Backspace > Ctrl + Z). Le concepteur va venir à son sens ensuite.Tout ce qui reste à faire maintenant, c'est d'attendre de Microsoft pour fixer ce bug gênant.
Le concepteur de formulaires ne seront pas reconstruire les formes que vous avez modifié manuellement si vous générez le projet en mode Debug apparemment.
J'ai aussi constaté que lorsque vous essayez de concevoir un formulaire qui peut être référencé bibliothèques qui sont déjà en cours d'utilisation, alors il échoue à la conception.
J'ai souvent exécuter plusieurs instances de Visual Studio. Si je laisse une instance de VS l'exécution d'un programme en mode debug, et que ce programme d'actions, une bibliothèque de l'instance de Visual Studio dans lequel je suis en train de concevoir, puis j'ai rencontré ce problème. Il peut également être aussi simple que la DLL que le concepteur de références est en cours d'utilisation.
Une fois que vous fermez le programme qui est en emprisonnant les fichiers de la bibliothèque, puis le retour à la normale.
À ajouter à cette longue liste de problèmes qui pourraient causer cette erreur, il semble que l'héritage d'un type générique ou classe abstraite permet de visser le concepteur.
J'ai eu ce bug avec VS2015, essayé de nettoyer et reconstruire les étapes, de construire de release n'a pas fonctionné.
J'ai mis du contrôle de base dans un autre projet et le concepteur s'est plaint qu'il n'y avait pas un constructeur pour elle. J'ai eu un constructeur avec 2 arguments, mais pas de vide. J'ai ajouté un constructeur vide et le designer a travaillé. J'ai ensuite passé le contrôle de base arrière dans son emplacement d'origine avec la dérivée contrôle, et le concepteur bug est revenu.
J'abandonnai et je viens de mettre le contrôle de base dans un "VsBug" projet, semble être heureuse...