API を介して別のアプリケーションのプラグインを作成しています。プラグインは DLL として配布されます。pdf、画像、chm ヘルプ ファイルなど、他のファイルを DLL ファイルに埋め込むことはできますか? -単一のファイルとして、ユーザーはアプリケーションにドラッグ アンド ドロップするだけでインストールできます。
5 に答える
もちろん、DLL にリソースを埋め込むこともできます。次に、実行時に次のようにします。
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf");
Foo.pdf
これにより、DLL に埋め込まれたファイルへのストリームが提供されます。メソッドの呼び出し元の型の名前空間によってリソース名のスコープを設定する必要があることに注意してください。
確かに、VS.NET でそれらを「埋め込みリソース」にするだけです (使用している場合)。次に、リソース API を介して、または単にAssembly.GetManifestResourceStream()を使用してそれらを読み取ることができます。
はい、できます。
プロジェクトにリソース ファイルを追加します。Visual Studio でリソース ファイルを開き、[リソースの挿入] をクリックします。外部ファイルを含む、さまざまな種類のリソースを選択できます。
Visual Studio によってコードが生成されるため、実行時にファイルの名前からResources
識別子を介してファイルをバイト配列として取得できます。
別のオプションとして、ファイルを解凍してユーザーのマシンに保存する必要がある場合 (アプリの外部からアクセスできるようにする chm ファイルなど)、zip ファイルを使用して同じことを行うこともできます。
ファイルをアプリに「ドラッグ」したいとおっしゃいました。DDE イベントで、ファイルが zip であるかどうかを確認し (メタデータを含む jar のようなものを使用している場合もあります)、実際のプラグインを含む必要なファイルを解凍します。
これは openxml ドキュメントと同じ考え方です。実際には、変装した単なる zip です。