尝试将嵌入式资源编写为字节流,但它们始终为null

时间:2014-07-05 02:51:59

标签: c# winforms stream bytearray nullreferenceexception

所以我想在我的资源中编写一个exe文件,这是我正在使用的方法:我将文件添加为资源,然后我将此代码添加到 Resources.Designer.cs

internal static byte[] exefile
    {
        get
        {
            object obj = ResourceManager.GetObject("exe-file-name", resourceCulture);
            return ((byte[])(obj));
        }
    }

    public static byte[] GetSubExe()
    {
        return exefile;
    }

然后我将其写入我的主要表单源代码 From1.cs ,如果我想要的话:

string tempExeName = Path.Combine(Directory.GetCurrentDirectory(), "Creating.exe");

        using (FileStream fsDst = new FileStream(tempExeName, FileMode.Create, FileAccess.Write))
        {
            byte[] bytes = Resources.GetSubExe();

            fsDst.Write(bytes, 0, bytes.Length);
        }
        string path = Path.GetDirectoryName(kryptonTextBox4.Text);
        createpatch(kryptonTextBox3.Text,kryptonTextBox4.Text,patchname,path);
        Application.DoEvents();

        File.Delete("Creating.exe");

当我运行代码时,我总是在这一行得到 NullReferenceException

fsDst.Write(bytes, 0, bytes.Length);

0 个答案:

没有答案