当发布软件时,会有很多xml这类配置文件,或者图片等资源文件,因为软件发布出去了,这些文件就暴露给用户了,我们经常要考虑哪些xml是容许暴露给客户,哪些不行。比如说系统配置类的或者跟权限有关的一些配置文件是不能暴露给最终客户的,这个时候就要用到resources.resx了,它以2进制方式封装了文件、图片、字符串等等资源。

两个跟resources.resx有关的SDK工具
1,al.exe: 程序集链接器从一个或多个文件(可以是模块,也可以是资源文件)生成一个具有程序集清单的文件。   模块是不含程序集清单的“Microsoft 中间语言”(MSIL) 文件。
http://msdn.microsoft.com/zh-cn/library/c405shex.aspx
2, Resgen.exe: 资源文件生成器将文本(.txt 或 .restext)文件和基于 XML 的资源格式 (.resx) 文件转换为公共语言运行时二进制 (.resources) 文件,后者可嵌入到运行时二进制可执行文件中或编译成附属程序集。
http://msdn.microsoft.com/zh-cn/library/ccec7sz1.aspx

调用方式:
1,在自己的程序集中:
Stream stream = this.GetType().Assembly.GetManifestResourceStream(...);

2,在其他程序集中:
Assembly asm = Assembly.LoadFrom( "资源dll文件路径");
ResourceManager rm = new ResourceManager( "资源文件名", asm);
pictureBox1.BackgroundImage= Image.FromStream(rm.GetStream( "图片名"));