ソース ファイルから別の winform アプリケーションをコンパイルし.resources
、実行時にファイルを作成し、コンパイル時に .resources ファイルを埋め込みリソースとして追加するアプリケーションを作成しました。新しい.resources
ファイルの作成に使用しているコードは次のとおりです。
// Creating .resources file from a file named Photo.jpg
string myfile = "photo.jpg";
using (ResourceWriter rw = new ResourceWriter(@".\photoRes.resources"))
{
rw.AddResource("MyPhoto",File.ReadAllBytes(myfile));
}
次に、このリソース ファイルは、コンパイルされたプログラムに埋め込みリソースとして追加されます。以下の行はその仕事をします
// -- -- -- inside the CompileExecutable() function -- -- --
CompilerParameters cp = new CompilerParameters();
..
..
if (provider.Supports(GeneratorSupport.Resources))
{
cp.EmbeddedResources.Add("bindedfile.resources");
}
..
..
ソースファイルからコンパイルしたコンパイル済みプログラムは ( Program Size + Picture Size ) になります。
画像は、そのファイルの埋め込みリソースになりました。画像にアクセスし、抽出して実行するには、そのファイルのソースに数行のコードを追加する必要がありますよね?
私の質問は、source.cs
ファイルに埋め込まれたリソースである画像を抽出して一時フォルダーから実行するように指示するために、ファイル内に何を書き込む必要があるかです。
以下の行をsource.csに追加すると
string[] arrayofstrings = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
foreach(string s in arrayofstrings) {MessageBox.Show(s);}
次のテキストを含む 1 つのメッセージ ボックスが表示されます。photoRes.resources
埋め込みリソースを読み取り、画像を一時フォルダーに抽出して実行する方法は? source.cs に追加する行は?