Ich habe eine DLL & gt; & gt; System.Data.SQLite.dll
Um es auf eine normale Weise zu verwenden & gt; füge es einfach als Referenz hinzu und
%Vor%Dann kann ich alle Funktionen innerhalb dieser DLL verwenden.
Aber möchte ich meine app.exe und diese DLL in einer einzigen Datei zusammenführen. Ich habe versucht, ILmerge zu verwenden, scheitere jedoch nicht. Wie ich weiß, kann ILmerge die Unmanage-DLL nicht zusammenführen.
Also, ich habe eine andere Methode ausprobiert & gt; Machen Sie die DLL als eingebettete Ressource. Ich kann es als eine Baugruppe mit dem folgenden Code laden:
%Vor%aber, wie soll ich die Funktionen in SQLiteDLL verwenden?
Ich habe auch versucht, die DLL als Ressource in Eigenschaften hinzuzufügen und sie so zu laden:
%Vor%Das oben erklärte, was ich bisher habe und ich weiß nicht, was ich als nächstes tun soll, um die DLL zu benutzen? Ich kann immer noch nicht die Funktionen innerhalb der DLL verwenden.
Zum Beispiel, wenn ich folgendes eintippe:
%Vor%Das Visual Studio sagt:
Fehler 21 Der Typ oder Namespace-Name 'SQLiteCommand' konnte nicht gefunden werden (fehlt eine using-Direktive oder eine Assembly-Referenz?)
Können Sie Ihre Erkenntnisse teilen? Danke.
Sie können eine Baugruppe einbetten UND gleichzeitig (in VS) referenzieren ... für die Art, wie Sie sie verwenden möchten, müssen Sie darauf verweisen! Gibt es einen Grund, warum Sie nicht auf die Versammlung verweisen?
Die Verwendung eines Typs aus einer eingebetteten Assembly (verwaltet) ohne Referenzierung ist etwas schwieriger, aber mit Reflection usw. möglich - siehe diese Links (sie enthalten Referenzmaterial UND einige Beispielcodes etc.):
Beim Einbetten von verwalteten DLLs haben Sie mehrere Möglichkeiten:
ODER
ODER
AssemblyResolve
-Handler, der zur Laufzeit aus Resources liest und die benötigten DLLs an die .NET-Runtime zurückgibt ... Dies ist keine Methode, um in AppDomain geladene Assemblys zu verwenden. Lesen Sie diesen Artikel: Vorgehensweise: Laden von Assemblys in eine Anwendungsdomäne
Kurz gesagt sollten Sie GetMethod () mit dem Methodennamen (zum Beispiel SqlCommand) aufrufen und dann über die .Invoke () Methode aufrufen.