在程序集中包含资源文件

当使用AL.exe创建程序集时, 你可以把一个文件作为资源加入到程序集中, 通过使用/embed[resource]开关. 这个开关接受一个文件(任何文件), 并把文件的内容嵌入到PE文件中. Manifest的ManifestResourceDef表会被更新来反映这个资源的存在.

AL.exe也支持/link[resource]开关, 它也是接受一个包含资源的文件, 然而/link[resource]开关会更新Manifest的ManifestResourceDef表和FileDef表, 表示资源的存在以及资源存在于程序集的那个文件. 资源文件没有被嵌入到程序集的PE文件, 它还是单独存在的, 必须随其他程序集文件一起打包和部署.

像AL.exe一样, CSC.exe也允许你合并多个资源到一个程序集中. C#编译器的/resource开关会嵌入指定的资源文件到程序集的PE文件中, 并更新ManifestResourceDef表. 编译器的/linkresource开关会在ManifestResourceDef和FileDef表中增加一个条目, 来指向独立的资源文件.

关于资源的最后一点是: 可以把标准的Win32资源嵌入到一个程序集中, 当你使用AL.exe或者CSC.exe时, 可以用/win32res开关来指定一个.res文件的路径. 此外, 你可以快速地, 很容易地把一个标准的Win32图标资源嵌入到程序集中, 通过使用/win32icon开关来来指定.ico文件的路径. 在Visual studio中, 你可以把资源文件加入到你的程序集中: 首先显示项目的属性, 然后点击应用标签页. 嵌入一个图标的典型原因是Windows的资源管理器可以为一个托管的可执行文件显示一个图标.

你可能感兴趣的:(文件)