日期:2014-05-19  浏览次数:21261 次

C#中怎么能把一个EXE文件放到程序里
C#中怎么能把一个EXE文件放到程序里   运行的时候释放
就像DELPHI的RC文件       C#中能实现吗
这个问题   请大虾说详细一点   谢谢

------解决方案--------------------
给你一个 "各种类型文件读写入资源文件 "的例子:
1、在 Microsoft Visual Studio .NET 的“文件”菜单上,单击“新建”,然后单击“项目”。
2、在“新建项目”对话框中,选择“Visual C#项目”,再选择“Windows 应用程序”模板。
3、键入 ResourcesApp 作为该程序的名称,然后单击确定。
4、在Form1.cs的视图设计器中,添加如下控件:
控件类型 控件名称  控件属性 属性值
Button button1 Text 给资源文件添加文件
Button button2 Text 从资源文件提取文件
5、在Form1.cs的代码设计器中,引用添加如下代码
using System.IO;
using System.Resources;
6、在Form1.cs的视图设计器中,选中button1,在属性框中选中事件,双击Click,在Form1.cs的代码设计器中,添加修改如下代码
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
OpenFileDialog1.Filter = "MP3 文件(*.mp3)|*.mp3 ";//为演示,这里以MP3文件为例,其实任何哪种文件都可以
if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
{
SaveFileDialog SaveFileDialog1 = new SaveFileDialog();
SaveFileDialog1.Filter = "资源文件(*.resources)|*.resources ";
if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
ResourceWriter rw = new ResourceWriter(new FileStream(SaveFileDialog1.FileName, FileMode.Create, FileAccess.Write));//生成一个资源文件
FileStream FS = new FileStream(OpenFileDialog1.FileName, FileMode.Open);//新建文件
byte[] buffer = new byte[FS.Length];
FS.Read(buffer, 0, buffer.Length);//从资源文件读取文件内容,写入到一个文件中
FS.Close();
rw.AddResource( "test.mp3 ", buffer);//写入文件(可以是各种类型的文件)
rw.Generate();//保存文件
rw.Close();//关闭
MessageBox.Show( "已将文件写入资源文件! ", "信息提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception Mye)
{
MessageBox.Show(this, Mye.Message, "信息提示 ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
7、在Form1.cs的视图设计器中,选中button2,在属性框中选中事件,双击Click,在Form1.cs的代码设计器中,添加修改如下代码
private void button2_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
OpenFileDialog1.Filter= "资源文件(*.resources)|*.resources ";
if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
{
SaveFileDialog SaveFileDialog1 = new SaveFileDialog();
SaveFileDialog1.Filter = "MP3 文件(*.mp3)|*.mp3 ";//为演示,这里以MP3文件为例,其实任何哪种文件都可以
if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
{
ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(Path.GetFileNameWithoutExtension(OpenFileDialog1.FileName), Path.GetDirectoryName(OpenFileDialog1.FileName), null);//资源文件不带扩展名称
byte[] buffer = (byte[])rm.GetObject( "test.mp3 ");
FileStream FS = new FileStream(SaveFileDialog1.FileName, FileMode.Create);//新建文件
BinaryWriter BWriter = new BinaryWriter(FS);//以二进制打开文件流
BWriter.Write(buffer, 0, buffer.Length);//从资源文件读取文件内容,写入到一个文件中
BWriter.Close();
FS.Close();
MessageBox.Show( "已从资源文件中提取出文件! ", "信息提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
catch (Exception Mye)
{
MessageBox.Show(this, Mye.Me