ゲームエンジンを作っていて、リソースのロード方法が気になります。
現在、このコードを使用しています。
public static Stream GetResourceStream(string name) {
string asmname = Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location).Replace('\\', '.').Replace('/', '.');
return Assembly.GetEntryAssembly().GetManifestResourceStream(asmname + "." + name.Replace('\\', '.').Replace('/', '.'));
}
そして、それを次のように使用します
Image img = Image.FromStream(GetResourceStream("Resources/image.png"));
SharpDevelop では現在の形式で動作していますが、コマンドラインからソースをコンパイルすると
csc.exe /t:winexe /res:Resources/image.png Game.cs
null ストリームを返しています。リソースをリストした
foreach (var name in typeof(this).Assembly.GetManifestResourceNames())
{
MessageBox.Show(name);
}
パッケージ名やフォルダ名のない単純な名前のリスティング画像です。
エントリ アセンブリにリソースをロードする最良の方法は何ですか? (別の GameEngine.dll を用意します)
ありがとう。