C# 试图将嵌入式资源作为字节流写入,但它们始终为空

C# 试图将嵌入式资源作为字节流写入,但它们始终为空,c#,winforms,stream,bytearray,nullreferenceexception,C#,Winforms,Stream,Bytearray,Nullreferenceexception,因此,我尝试在我的资源中编写一个exe文件,这是我使用的方法:我将该文件添加为资源,然后将此代码添加到resources.Designer.cs 然后,我从1.cs将其写入我的主窗体源代码中,以备需要: string tempExeName = Path.Combine(Directory.GetCurrentDirectory(), "Creating.exe"); using (FileStream fsDst = new FileStream(tempExeName, F

因此,我尝试在我的资源中编写一个exe文件,这是我使用的方法:我将该文件添加为资源,然后将此代码添加到resources.Designer.cs

然后,我从1.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);

在返回字节[]obj行上放置断点。我打赌obj将是空的。您需要阅读ResourceManager.GetObject的文档,并确保已正确设置所有内容。请检查Resources.Designer.cs。可能exe文件名是以exe\u file\u名称导入的,即带有下划线。@KirillShlenskiy很抱歉,我没有回复我在过去几天失去了连接,我会检查一下,然后带着一些反馈回来@AlexD这里的文件名只是临时文件,在我的项目中只有一个字,所以我确信它是好的。@KirillShlenskiy首先我很抱歉双重发布,中断该行不会被执行,我调用的方法对吗?
fsDst.Write(bytes, 0, bytes.Length);