Ich schreibe ein Plug-in für eine andere Anwendung über eine API. Die Plug-Ins sind eine DLLs verteilt. Ist es möglich, andere Dateien in die DLL-Datei einzubetten wie PDFs, Bilder, CHM-Hilfedateien etc ... Ich möchte Dokumentation mit meinem Plug-in zur Verfügung stellen können, aber ich möchte immer noch die Möglichkeit, den Stecker zu verteilen In einer einzigen Datei kann der Benutzer einfach per Drag & Drop auf die zu installierende Anwendung ziehen.Kann ich andere Dateien in eine DLL einbetten?
Antwort
Resource Files ist, was Sie brauchen.
Ja, das können Sie tun.
Fügen Sie Ihrem Projekt eine Ressourcendatei hinzu. Öffnen Sie die Ressourcendatei in Visual Studio und klicken Sie auf Ressource einfügen. Sie können verschiedene Ressourcentypen auswählen, einschließlich externer Dateien.
Visual Studio generiert Code für Sie, damit Sie die Dateien zur Laufzeit als Bytearrays von ihren Namen über die Resources
-Kennung abrufen können.
Sicher, Sie können eine Ressource in Ihre DLL einbetten. Dann zur Laufzeit tun Sie gerade:
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf");
Dies würde Ihnen einen Strom an die Foo.pdf
Datei in Ihrem DLL eingebettet. Beachten Sie, dass der Ressourcenname auf den Namespace des Typs beschränkt sein muss, von dem Sie die Methode aufrufen.
Sicher, machen Sie sie einfach "Embedded Resource" in VS.NET (vorausgesetzt, Sie verwenden es). Sie können sie dann über Ressourcen-APIs oder einfach mit Assembly.GetManifestResourceStream() lesen.
Als eine alternative Option, wenn Sie die Dateien auf dem Benutzercomputer entpacken und speichern müssen (sagen Sie eine CHM-Datei, auf die Sie außerhalb Ihrer App zugreifen möchten), können Sie dasselbe auch mit ZIP-Dateien tun.
Sie sagten, Sie wollten die Datei in Ihre App "ziehen". Lassen Sie Ihre DDE-Ereignisse einfach überprüfen, ob es sich bei der Datei um eine ZIP-Datei handelt (vielleicht sogar mit einem Jar mit Metadaten) und entpacken Sie die erforderlichen Dateien, einschließlich des eigentlichen Plugins.
Dies ist die gleiche Idee wie openxml Dokumente, sie sind wirklich nur Zips in Verkleidung.
Perfekter Dank! –
sollten Sie erklären, wie es geht, nicht nur einfügen Links – Toolkit
Link ist kaputt! – LuizLoyola