it-swarm.com.de

Typ 'xxx.xxx.xxx' konnte nicht gefunden werden. Bitte stellen Sie sicher, dass die Montage

Ich habe StackOverflow gesucht und ähnliche Probleme gefunden, wenn ich versuche, ein Formular zu öffnen, das auf ein UserControl in einem anderen Projekt verweist.

Ich erhalte die Meldung "Um möglichen Datenverlust vor dem Laden des Designers zu vermeiden, müssen die folgenden Fehler behoben werden:", die sich auf die folgenden zwei Fehler beziehen:


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 eine beliebige 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 im Designer im Formular befindet - es wird nur als bezeichnet;

Friend WithEvents InformationBox1 As MyNamespace.CommonUi.InformationBox

Das Projekt "MyNamespace.CommonUi" wurde erfolgreich erstellt.

Ich werde im Projekt intelligent, also bin ich ziemlich sicher, dass es korrekt referenziert wird.

Bisher hatten die gleichen Leute:

Dies ist ein Projekt, das in VS2005 von .NET2/x86 in VS2012 von .NET4/x64 migriert wurde.

Wenn die Lösung unter 64 Bit läuft, funktioniert sie jetzt nicht und ich bekomme diesen Designer-Fehler. Wenn ich es jedoch auf 32bit (gut technisch AnyCPU) umstelle, kann ich den Designer einfach öffnen.

Ich habe die anderen Vorschläge in ähnlichen Threads durchgelesen, aber sie sehen keine Lösung. (Ich habe sogar die Option "Verschiebe es nach links und rechts, um es neu zu erstellen" auswählen)

Ich glaube, das Problem ist, dass Visual Studio nativ 32bit ist und man keine GUI-Bearbeitung für einige Komponenten (z. B. ListView) in 64-Bit ausführen kann. In Formularen, in denen ListView installiert ist, müssen Sie die Lösung auf 32 Bit ändern, um die GUI bearbeiten zu können.

Die Antwort lautet also kurz gesagt, wenn Sie mit diesem Problem konfrontiert sind:

  1. Ändern Sie die Lösung in 32bit
  2. Reinigen Sie die Lösung und bauen Sie sie erneut auf
  3. Öffnen Sie die GUI zum Bearbeiten
  4. Speichern Sie, ändern Sie die Lösung wieder auf 64 Bit
  5. Reinigen und neu aufbauen
  6. Laufen Sie in 64bit

Weitere Informationen finden Sie in dieser Frage.

VS 2010 Designer-Fehler 'Typ XYZ konnte in Windows7 nicht gefunden werden. Funktioniert gut in XP

44
rboy

Ich hatte dieses Problem. Dies geschah nur in einer Formulardesigneransicht, obwohl das Formular in Runtime kompiliert, gestartet, angezeigt und andere Formulare/Steuerelemente im Designer-Modus angezeigt werden konnten.

Diese Schritte haben nicht geholfen:

  • Reinigen und neu aufbauen
  • Starten Sie das Studio neu
  • Alle bin- und obj-Verzeichnisse löschen
  • Referenzen entfernen und hinzufügen
  • Verleugnung, Wut, Verhandlungen, Depression, Akzeptanz

Lösung für meinen Fall:

  1. Benennen Sie einen Typ um, der fehlt (zB InformationBox => InformationBox2)
  2. Designer aktualisieren (WOW, es funktioniert!)
  3. Benennen Sie den Typ in seinen ursprünglichen Namen um
13
Anton Purin

Ändern Sie eine beliebige CPU in X86. Ihr Steuerelement ist 32 Bit und versucht, auf einem 64-Bit-Computer zu laufen. Die 64-Bit-Version des Steuerelements kann nicht gefunden werden.

7
jcwrequests

Ich hatte diesen Fehler kürzlich bei VB.Net in Visual Studio 2013, als ich mit einem benutzerdefinierten WinForm-Benutzersteuerelement arbeitete, das selbst eine benutzerdefinierte Benutzersteuerungs-Basisklasse in demselben Projekt erbte In meinem Fall hatte weder die Basisklasse noch die Kindklasse einen Konstruktor ohne Parameter (weil dies in diesem Fall kein gültiges Szenario ist).
Um das Problem zu beheben, habe ich den fehlenden Konstruktor hinzugefügt, aber leer gelassen (das Auslösen einer NotImplementedException verursachte ein anderes Problem, das die Anzeige verhinderte). Es ist nicht schön, aber es funktioniert.

Um den zugrunde liegenden Fehler durch die in diesem Thread aufgelistete Frage zu sehen, musste ich Folgendes tun:

  1. Reinigen Sie die gesamte Lösung
  2. Schließen Sie Visual Studio
  3. Öffnen Sie Visual Studio erneut
  4. Öffnen Sie die Lösung erneut
  5. Erstellen Sie die Lösung, indem Sie im Projektmappen-Explorer mit der rechten Maustaste darauf klicken (Keine Neuerstellung, das hat nicht funktioniert)
  6. Zeigen Sie das User Control im Designer-Modus an und der tatsächliche Fehler wird jetzt angezeigt

Nach dem Hinzufügen des Konstruktors musste ich die obigen Schritte erneut ausführen, damit er ordnungsgemäß funktioniert.

4
Taegost

Ich habe eine große Lösung mit mehreren Projekten auf die x64-Plattform von AnyCPU geändert. Es wurde versucht, den Designer eines der Lösungsformulare zu öffnen, die auf ein Steuerelement in einem der anderen Projekte verwiesen haben, und dieselbe Fehlernachricht wie das OP erhalten. Das Projekt wurde geöffnet, in dem sich die Kontrolle befand, und es wurde festgestellt, dass AnyCPU weiterhin angegriffen wurde. Hat eine Stunde lang versucht, es als x64 ohne Glück zu sichern. Schließlich öffnete ich die csproj-Datei in Notepad, ersetzte AnyCPU durch x64 und alles begann zu funktionieren. Hoffentlich hilft dies einem anderen so frustriert wie ich.

3
OldDog

Hier sind einige weitere Informationen: der Designer könnte nicht mit Plattform-x64 gezeigt werden

Die Lösung, die in AnyCPU ausgeführt wird, wenn Sie versuchen, auf den Designer zuzugreifen, ist eine Problemumgehung, die für unsere Zwecke ausreicht.

Während es viele Hinweise auf 32-Bit usw. gibt, waren die folgenden Schritte für mich: 

  • Konvertieren Sie alle Verweise auf das Benutzersteuerelement, beispielsweise 'InformationBox1 als InformationBox' in eine vollständig qualifizierte Klassenreferenz wie 'MyNamespace.CommonUi.InformationBox' in allen designer.vb-Dateien. 

    • Lösung reinigen 

    • Lösung neu erstellen.

In meinem Fall handelte es sich um ein Migrationsprojekt von VB6 nach VS2008, und beide Umgebungen waren 32-Bit, und auf derselben Maschine waren keine 64-Bit-Zeichen vorhanden. 

2
Whirl Mind

Speichern Sie einfach Ihr Projekt, schließen Sie es und öffnen Sie es erneut.

1
Shamal Sabah

Was ich denke, dass Sie behalten sollten, steuert die Benutzeroberfläche in einem separaten Projekt von Ihrem 64-Bit-Projekt und führt es mit den Einstellungen einer beliebigen CPU aus. Dies hilft, es nicht mit der 64-Version zu reinigen und neu aufzubauen.

1
Muhammad Saqib

Dies geschieht, wenn Sie für x64 kompilieren, da der Visual Studio-Designer keine x64-Assemblys laden kann. Der Designer von Visual Studio kann nur x86-Assemblys laden, da dies nur ein 32-Bit-Prozess ist!

  1. Sie können entweder zu AnyCPU wechseln
  2. wenn Sie für x86 erstellen, kann der Visual Studio-Designer Ihre Baugruppen laden, um Ihre Steuerelemente zur Entwurfszeit anzuzeigen
  3. Entwerfen Sie keine x64-Assemblys, erstellen Sie sie nur über Batch oder in Visual Studio und wechseln Sie dann wieder zu AnyCPU oder x86
1

Sie können zu einer beliebigen CPU wechseln

Projekt => Eigenschaften => Build 

Plattformziel: Wechseln zu Beliebige CPU

Reinigen und neu erstellen, öffnen Sie die Designdatei erneut 

1
AAli

Ich habe kürzlich in VS 2015 das gleiche Problem mit einem meiner benutzerdefinierten Steuerelemente (C #) festgestellt.

Ich habe es gelöst, indem ich die Lösung gereinigt habe (Build -> Clean Solution) und dann die gesamte Lösung neu aufbauen. Alles kam reibungslos zurück.

Das Plattformziel für meine Projekteinstellungen ist bereits auf "Beliebige CPU" gesetzt, und das Kontrollkästchen "32 Bit bevorzugen" ist aktiviert. Nicht sicher, warum es passiert ist.

0
TLT