0

現在作成中の .net フォーム アプリケーションがあり、プログラムで使用するリソースが多数あります。いくつかの画像、フォント ファイル、スクリプト (私のプログラムはオクターブ スクリプトを呼び出します) など..

現在、プログラムのスタートアップ ディレクトリに手動で作成したさまざまなフォルダーがあり、Application.StartupPath を介してそれらにアクセスしています。ただし、これにより、過去にいくつかの厄介なバグを引き起こした、デバッグ ビルド バージョンとリリース ビルド バージョンの両方に対して個別のファイル セットを維持する必要があります。数か月前にデバッグでいくつかのオクターブ スクリプトを編集し、それらをリリース スクリプト フォルダーにコピーするのを忘れていました。リソースを参照するより良い方法はありますか?

4

2 に答える 2

2

プログラム自体の内部にリソースを格納できる必要があります。
プロジェクトの Resources セクション [Project menu => "PROJECT NAME" Properties... => Resources(左側)] にアクセスし、そこにファイルを追加します。
リソースをダブルクリックして編集することもできます。

コードでは、これらのリソースを My 名前空間 (My.Resources."RESOURCE NAME") で使用できるようにする必要があります。

リソースのタイプ (コード内) は、追加するリソースの種類によって異なります (左上隅のドロップダウン リストを参照してください)。

  • 画像は System.Drawing.Bitmap になります
  • アイコンは System.Drawing.Icon になります
  • 文字列は System.String になります
  • テキスト ファイルは System.String になります
  • テキスト以外のファイルは配列になり、System.Byte()
于 2013-08-21T20:54:02.587 に答える
1

Webアプリのように聞こえるものについて何も言及していないので、Windowsアプリを構築しているようです。.resx の一部として、ビルド時にリソースをアプリケーションにリンクするリソース ディレクトリにリソースを配置できるはずです (出力ディレクトリへのコピーとしてリソース ファイルにタグを付ける必要はありません)。ファイル。プロジェクトのプロパティを開くことで、リソースを管理できます。画像のプロパティを使用して制御するには、.resx ファイルから画像を直接参照するだけです。カスタム リソースをフォームに読み込む必要がある場合は、

this.GetType().Assembly.GetManifestResourceStream("yourresourcename.ext"); 

リソース名をパスで装飾する必要がある場合があります。これを理解する簡単な方法は、

string[] resourcenames = this.GetType().Assembly.GetManifestResourceNames();

少し凝って、国際化によく使用される複数の .resx ファイルを作成できます。

于 2013-08-21T21:06:08.323 に答える