18

API を介して別のアプリケーションのプラグインを作成しています。プラグインは DLL として配布されます。pdf、画像、chm ヘルプ ファイルなど、他のファイルを DLL ファイルに埋め込むことはできますか? -単一のファイルとして、ユーザーはアプリケーションにドラッグ アンド ドロップするだけでインストールできます。

4

5 に答える 5

13

もちろん、DLL にリソースを埋め込むこともできます。次に、実行時に次のようにします。

Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf");

Foo.pdfこれにより、DLL に埋め込まれたファイルへのストリームが提供されます。メソッドの呼び出し元の型の名前空間によってリソース名のスコープを設定する必要があることに注意してください。

于 2009-12-11T20:33:25.217 に答える
9

確かに、VS.NET でそれらを「埋め込みリソース」にするだけです (使用している場合)。次に、リソース API を介して、または単にAssembly.GetManifestResourceStream()を使用してそれらを読み取ることができます。

于 2009-12-11T20:34:03.467 に答える
1

はい、できます。

プロジェクトにリソース ファイルを追加します。Visual Studio でリソース ファイルを開き、[リソースの挿入] をクリックします。外部ファイルを含む、さまざまな種類のリソースを選択できます。

Visual Studio によってコードが生成されるため、実行時にファイルの名前からResources識別子を介してファイルをバイト配列として取得できます。

于 2009-12-11T20:33:18.817 に答える
0

別のオプションとして、ファイルを解凍してユーザーのマシンに保存する必要がある場合 (アプリの外部からアクセスできるようにする chm ファイルなど)、zip ファイルを使用して同じことを行うこともできます。

ファイルをアプリに「ドラッグ」したいとおっしゃいました。DDE イベントで、ファイルが zip であるかどうかを確認し (メタデータを含む jar のようなものを使用している場合もあります)、実際のプラグインを含む必要なファイルを解凍します。

これは openxml ドキュメントと同じ考え方です。実際には、変装した単なる zip です。

于 2009-12-11T21:04:04.260 に答える