怎么在bin\Debug的那个exe里打包大图片或者wmv声音文件,也就是说,只要有exe这个文件就可以播放声音,不需要读取本地文件了
怎么在bin\Debug的那个exe里打包大图片或者wmv声音文件,也就是说,只要有exe这个文件就可以播放声音,不需要读取本地文件了
------解决方案--------------------
C# 嵌入式资源
1、手动嵌入式资源
右键工程-添加-现有项-图片或者文本
点击图片或者文本-生成操作-嵌入的资源 //这一步非常重要
这样添加的图片或者文本就打包到exe中
可以这样访问:
Assembly assembly = GetType().Assembly;
System.IO.Stream streamSmall = assembly.GetManifestResourceStream("WindowsFormsApplication1.event.jpg");
//当作为一个资源被嵌入后,资源的完整名称会由项目的默认命名空间与文件名组成
Bitmap BackgroundImg = new Bitmap(streamSmall);
pictureBox1.Image = BackgroundImg;
Assembly assembly = GetType().Assembly;
System.IO.Stream streamSmall = assembly.GetManifestResourceStream("WindowsFormsApplication1.NewFolder1.TextFile1.txt");
StreamReader sr = new StreamReader(streamSmall);
string text = sr.ReadToEnd();
MessageBox.Show(text);
2、手动非嵌入式资源
右键工程-添加-现有项-图片或者文本
点击图片或者文本-生成操作-内容 //如果不进行任何操作,默认就是非嵌入式资源
这样添加的图片或者文本就打包到exe中
可以这样访问:
通过绝对路径和相对路径作为外部资源访问
/////////////////////////////////////////////
3、.net提供的访问嵌入式资源
Resources.resx,Form1.resx怎么使用? //只需要添加,不用任何操作,默认就是嵌入式资源
每创建一个窗体就会自动生成一个.resx文件,可以在这个文件中加入字符串、图像、图标、文件等。
项目编译时,生成exe文件,这些图像、图标、文件等都会被写入 exe 文件中。
每一个窗体都有一个资源文件,并且项目有一个共用的资源文件,最好使用这个共用的资源文件,查看项目属性里,选中资源,
就可以加入自己要的资源 添加资源 - 添加现有文件,就可以反图片资源放进入。
读取这个图片资源,如已经加入了一个 a.bmp 图像,名称是 Pic
Bitmap bitmap = 项目的名称空间.Properties.Resources.Pic;
这就可能用了这个资源了。
具体的类位于,Properties目录中的 Resources.resx 文件中,打开看下就明白了。
资源文件也可以自己创建,像创建类一个。?
这种嵌入式资源访问方式是.net内部提供的方式,与访问app.config方式类似,都是.net内部提供,当然也可以使用1自己手动创建