如何将图像从嵌入资源提取到临时文件夹,然后执行它

本文关键字:文件夹 然后 执行 图像 提取 嵌入资源 | 更新日期: 2023-09-27 18:31:51

我有一个应用程序,它从源文件编译另一个wform应用程序,并在运行时创建一个.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");
            }
         .. 
         ..

到目前为止,一切正常,我们从源文件编译的编译程序将是(程序大小+图片大小)。

图片现在是该文件的嵌入资源。因此,为了访问图片,提取并执行它,需要将一些代码行添加到该文件的源中,对吗?

我的问题是应该在source.cs文件中写入什么,以告诉它提取作为其嵌入资源的图像,然后从临时文件夹中执行它。

当我将下面的行添加到源时.cs

string[] arrayofstrings = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
        foreach(string s in arrayofstrings) {MessageBox.Show(s);}

它向我显示一个带有以下文本的消息框:photoRes.resources

如何读取嵌入的资源并将图像提取到临时文件夹然后执行它?要向源添加哪些行.cs?

如何将图像从嵌入资源提取到临时文件夹,然后执行它

此支持文章如何使用 Visual C# 嵌入和访问资源。

_imageStream = _assembly.GetManifestResourceStream("MyNameSpace.MyImage.bmp");