当使用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的资源管理器可以为一个托管的可执行文件显示一个图标.
本文介绍了如何使用AL.exe和CSC.exe将不同类型的资源文件嵌入.NET程序集中。包括使用/embed和/link开关来处理资源文件的方式,以及如何利用/win32res和/win32icon开关来嵌入Win32资源。
2160

被折叠的 条评论
为什么被折叠?



