Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DLL mit Form-Vererbung läßt sich von VS nicht laden
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

DLL mit Form-Vererbung läßt sich von VS nicht laden

beantworten | zitieren | melden

Hallo,

ich habe versucht aus einer bestehenden App ein Basisformular herauszuziehen, damit ich das in zukünftigen Projekten verwenden kann. Die Durchführung habe ich gemäß Exemplarische Vorgehensweise: Demonstrieren der visuellen Vererbung - Windows Forms .NET Framework versucht.
Das Bauen der DLL hat jetzt soweit geklappt - oder auch nicht. Beim Versuch die als geerbtes Formular in ein anderes Projekt hinzuzufügen kommt die Meldung
Fehler
Die Assembly ...dll kann nicht geladen werden. Stellen Sie sicher, dass die Datei eine gültige .Net Framework-Assembly ist

Welche Einstellung ist denn da falsch?

Gruß
Udo
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.320

beantworten | zitieren | melden

Hallo,

du hast also das Projekt mit dem Basisformular als Verweis (reference) zu dem Hauptprojekt hinzugefügt und dann bei einer Form die Basisklasse entsprechend geändert? Und beim Ausführen kommt dann die Fehlermeldung?

Ist die DLL denn beim Bauen in das Ausgabeverzeichnis ("bin/debug" bzw. "bin/release") kopiert worden? Ansonsten gibt es beim Verweis dafür eine Einstellung ("Copy local").
private Nachricht | Beiträge des Benutzers
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

beantworten | zitieren | melden

Hallo Th69,

Äh, nein.
Die Fehlermeldung kommt dann, wenn ich versuche die DLL mit der Basisklasse zu dem anderen Projekt im VS über "Hinzufügen -> neues Element -> Windows Forms -> Geerbtes Formular" hinzufügen will. Dabei kann man auch die DLL direkt über einen Datei-öffnen-Dialog im BIN/debug-Verzeichnis auswählen. Klickt man die an und dann OK, dann kommt die Fehlermeldung. Nicht erst beim Ausführen, soweit kommt man garnicht, da es schon nicht funktioniert die DLL zum Projekt hinzuzufügen.

Gruß
Udo

Edit: Ich probiere mal die DLL in das andere Projekt zu kopieren und dort hinzuzufügen.
Edit2: Nein, funktioniert dann auch nicht.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von UHM am .
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

Das klingt von der Fehlermeldung her, als ob du eine Unmanaged DLL z. B. in C++ vorliegen hast.

Eine normal in C# oder C++/CLI Assembly (DLL) sollte sich Problemlos einbinden lassen.
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

beantworten | zitieren | melden

Geschrieben ist die DLL ausschließlich in C#. Gäbe es eine Einstellung, mit der sich die DLL derart verhunzten ließe?
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

Huh, sehe grade das scheint ein Bug in VS zu sein. Hab einfach mal versucht ein geerbtes Formular zu erstellen. Und siehe da. Gleicher Fehler (hier: VS Professional 2017).

Ich empfehle dir ohnehin: Verweise auf die Bibliothek mit dem BaseForm, erstelle ein neues Formular und ändere den Basistyp von Form auf dein BaseForm.

Damit solltest du allen ärger aus dem Weg gehen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von inflames2k am .
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

beantworten | zitieren | melden

Bzw. als Ressource ist ein Bild mit drin. Kann es an dem liegen?
private Nachricht | Beiträge des Benutzers
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

beantworten | zitieren | melden

Ok, jetzt waren wir gleichzeitig, guten Morgen
Ich schau mal.
Hier VS2019
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von UHM am .
private Nachricht | Beiträge des Benutzers
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

beantworten | zitieren | melden

Also den Link konnte ich hinzufügen, die Klassen der DLL sind jetzt im Hauptprojekt auch bekannt. Allerdings bekomme ich jetzt fast überall Fehlermeldungen wie :

Fehler CS1705 Assembly "xxxdll" mit Identität "...dll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" verwendet "System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mit einer höheren Version als die referenzierte Assembly "System.Runtime" mit Identität "System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".

Wo stelle ich denn die Runtime-Version ein?
Hauptprogramm ist derzeit Framework 4.8 (hatte es auch mit 4.7 am Anfang) und DLL ist .NET Core 3.1
Gibt's da noch eine andere Einstellung oder fehlt mir da gerade etwas?
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.972

beantworten | zitieren | melden

Du kannst keine Core-DLL in eine Framework-DLL einbinden, musst dich schon für eins von beiden entscheiden
private Nachricht | Beiträge des Benutzers
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

beantworten | zitieren | melden

Ich habe keine Möglichkeit etwas anderes auszuwählen.
Bei der DLL gibt es nur Core-Auswahlen, im Hauptprogramm nur Framework-Auswahlen. Sollte das an anderer Stelle entschieden werden?
private Nachricht | Beiträge des Benutzers
UHM
myCSharp.de - Member



Dabei seit:
Beiträge: 22

Themenstarter:

beantworten | zitieren | melden

Ok, war wohl schon die Erstellung des DLL-Projekts falsch.
private Nachricht | Beiträge des Benutzers