C# Tips


exeに含めたリソースを使用するには


実行時に使用する画像やXML、テキストなどをexeにリソースとして組み込む方法を紹介します。
まずVisual Studioでプロジェクトにリソースファイルを追加します。例えば別にアイコンファイルを作成しておき、それをAdd New Itemで追加します。
ソリューション エクスプローラで、埋め込むファイルを選択します。
[プロパティ] ウィンドウ内のファイルに対して [ビルド アクション] を選択します。
[ビルド アクション] を [埋め込まれたリソース] に設定します。
これでリソースがアプリケーションに埋め込まれました。

プログラム内で埋め込まれたリソースを利用するには、AssemblyクラスのGetManifestResourceStream()メソッドを使用します。
アクティブなAssemblyリファレンスを参照するにはいくつかのメソッドが用意されています。

GetEntryAssembly()
GetExecutingAssembly()
GetCallingAssembly()

ここでは、Windowsアプリケーションを作成することを想定して、GetEntryAssembly()を使用します。DLLやWebアプリケーションを作成する際には別のメソッドを使用する必要があります。詳しくは、Helpなどで参照してみてください。

Assemblyリファレンスを取得したら、リソースの名前をキーにして、GetManifestResourceStreamを呼び出します。このときの名前はネームスペース.リソースファイル名という風になります。ネームスペースはプロジェクト名と同じになっているはずです。

// Load icon resource from embeded resource icon
private Icon LoadIcon()
{
	// Assembly Reference
	System.Reflection.Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

	System.IO.Stream stream;
	System.IO.StreamReader reader;
		
	stream = assembly.GetManifestResourceStream("MyNamespace.MyIcon.ico");
	reader = new System.IO.StreamReader(stream);
	return new Icon(reader.BaseStream);
}

// Use the icon
this.notifyIcon.Icon = LoadIcon();


目次に戻る
Copyright(c) 2008 WoodenSoldier Software