Ich habe StackOverflow durchsucht und ähnliche Probleme gefunden, wenn ich versuche, ein Formular zu öffnen, das auf ein UserControl in einem anderen Projekt verweist.
Ich bekomme die
Um einem möglichen Datenverlust vor dem Laden des Designers vorzubeugen, müssen folgende Fehler behoben werden:
Meldung bezüglich der folgenden zwei Fehler:
Typ „MyNamespace.CommonUi.InformationBox" konnte nicht gefunden werden. Stellen Sie sicher, dass auf die Assembly verwiesen wird, die diesen Typ enthält. Wenn dieser Typ Teil Ihres Entwicklungsprojekts ist, stellen Sie sicher, dass das Projekt mit den Einstellungen für Ihre aktuelle Plattform oder Any CPU erfolgreich erstellt wurde.
UND
Die Variable 'InformationBox1' ist entweder nicht deklariert oder wurde nie zugewiesen.
InformationBox1
ist eine Instanz des Benutzersteuerelements, InformationBox
das sich auf dem Formular im Designer befindet - es wird nur referenziert als;
Friend WithEvents InformationBox1 As MyNamespace.CommonUi.InformationBox
Das MyNamespace.CommonUi
Projekt wird erfolgreich erstellt.
Ich bekomme Intellisense in das Projekt, also bin ich ziemlich sicher, dass es richtig referenziert wird.
Bisher das gleiche wie andere Leute hatten:
Dies ist ein Projekt, das von.NET2/x86 in VS2005 zu.NET4/x64 in VS2012 migriert wurde.
Wenn die Lösung jetzt unter 64 Bit läuft, funktioniert sie nicht und ich erhalte diesen Designerfehler. Wenn ich es jedoch auf 32 Bit umschalte (technisch gesehen AnyCPU), kann ich den Designer problemlos öffnen.
Ich habe die anderen Vorschläge in ähnlichen Threads durchgelesen, aber sie sehen keine Lösung (ich bin sogar so weit gegangen wie die Option "Nach links und rechts verschieben, um es neu zu erstellen").
Lösung des Problems
Ich glaube, das Problem ist, dass Visual Studio nativ 32 -Bit ist und man für einige Komponenten (z. B. ListView) in 64-Bit keine GUI-Bearbeitung durchführen kann. Auf Formularen, in denen Sie ListView haben, müssen Sie zB die Lösung auf 32bit ändern, um die GUI zu bearbeiten.
Die Antwort lautet also kurz gesagt, wenn Sie mit diesem Problem konfrontiert sind:
Leider gibt es Visual Studio noch nicht in 64 -Bit, daher müssen alle Steuerelemente im 32-Bit-Modus (oder AnyCPU-Modus) entworfen werden.
Siehe diese Frage als Referenz.
VS 2010-Designerfehler „Typ XYZ konnte nicht gefunden werden" in Windows7. Funktioniert gut unter XP
UPDATE:
Nach Jahren der Recherche war ich endlich dabei, eine geeignete Lösung für das Problem zu finden, meine benutzerdefinierten/32-Bit-Steuerelemente in einer 64-Bit-Umgebung mit dem VS-GUI-Design-Editor zu laden und zu bearbeiten. Beachten Sie, dass dies bis Visual Studio 2019 funktioniert, die Architektur des entworfenen Editors hat sich in VS 2022 geändert, daher bin ich mir nicht sicher, ob dies dort noch funktioniert.
Im Wesentlichen passieren einige Dinge mit dem Visual Studio-Design-Editor, die Sie daran hindern, benutzerdefinierte/32-Bit-Steuerelemente in einer 64-Bit-Designumgebung zu bearbeiten.
Toolbox
wenn Sie ein Formular in einer 64-Bit-Zielumgebung laden. Dies ist Teil des Hauptproblems, da Ihr Steuerelement nicht in der toolbox
angezeigt wird. Wenn VS versucht, ein Formular zu laden, das dieses Steuerelement verwendet (oder eine erweiterte Klasse, die dieses Steuerelement erweitert), wird der Fehler ausgegeben, Typ konnte nicht gefunden werden 'xxx.xxx.xxx' (in der Toolbox ist das der Teil, der nicht angegeben wird)Die Lösung hier besteht also darin, ein neues Projekt innerhalb derselben Lösung zu erstellen und Ihre benutzerdefinierten/32-Bit-Steuerelemente in einen neuen Namespace innerhalb dieses neuen Projekts zu verschieben. Jetzt kann Visual Studio Ihre Steuerelemente sehen und in die Toolbox
. Dies sollte automatisch geschehen, aber Sie können das Attribut auch [ToolboxBitmapAttribute(true)]
zu Ihrer öffentlichen Klassendefinition in Ihrem benutzerdefinierten Steuerelement hinzufügen. Sobald Ihr benutzerdefiniertes Steuerelement in der Toolbox angezeigt wird, sollte der Visual Studio-Designeditor keine Probleme haben, die Assembly zu finden und Ihr Formular zu laden, sodass Sie Ihr benutzerdefiniertes 32-Bit-Steuerelement in der 64-Bit-Designumgebung bearbeiten können.
Keine Kommentare:
Kommentar veröffentlichen