资源文件生成器(Resgen.exe)工具使用详解

来源:互联网  作者:本站整理
摘要:资源文件生成器主要用于将.txt文件和.resx(基于XML的资源格式)文件转换为公共语言运行库二进制.resources文件,该文件可嵌入运行库二进制可执行文件或编译成附属程序集。有关部署和检索.resources文件的信息,请参见应用程序中的资源。…

选项说明

/compile
 使您可以在单个批量操作中指定多个要转换为 .resources 文件的 .resx 文件或 .txt 文件。如果不指定此选项,则只能指定一个输入文件参数。

/publicClass
 作为公共类创建强类型的资源类。
如果未使用“/str:”选项,则忽略此选项。

/r: assembly
 指定将要从 assembly 加载的类型。如果指定此选项,则具有某早期版本的类型的 .resx 文件将使用 assembly 中的类型。

/str: language[,namespace[,classname[,filename]]]
 使用 language 选项中指定的编程语言(C# 或 Visual Basic)创建强类型资源类文件。使用 namespace 选项可指定项目的默认命名空间,使用 classname 选项可指定所生成的类的名称,使用 filename 选项可指定类文件的名称。

/usesourcepath
 指定输入文件的当前目录将被用于解析相对文件路径。

备注说明

Resgen.exe 通过包装由下列四类实现的方法来转换文件:
ResourceReader 类读取 .resources 文件。
ResourceWriter 类从指定的资源创建 .resources 文件。
ResXResourceReader 类读取 .resx 文件。
ResXResourceWriter 类从指定的资源创建 .resx 文件。

请注意,由 ResXResourceWriter 创建的 .resx 文件不能直接由 .NET Framework 应用程序使用。在将该文件添加到应用程序之前,通过 Resgen.exe 运行该文件以将其转换为 .resources 文件。有关在代码中实现这些类的更多信息,请参见它们各自的参考主题。

为了使 Resgen.exe 能够分析输入,.txt 文件和 .resx 文件遵循正确的格式是非常关键的。

文本文件只能包含字符串资源。如果需要将所编写的应用程序中的字符串翻译成多种语言,则字符串资源很有用。例如,通过使用适当的字符串资源,可以很容易地本地化菜单字符串。Resgen.exe 读取包含名称/值对的文本文件,其中名称是描述资源的字符串,值是资源字符串本身。必须在每行上分别指定每个名称/值对,如下例所示:
 
name=value
请注意,文本文件中允许使用空字符串。例如:
 
EmptyString=
Resgen.exe 检查文本文件中是否有重复的资源名。如果文本文件包含重复的资源名,Resgen.exe 将发出警告,并忽略重复的名称。有关文本文件格式的更多详细信息,请参见 文本文件格式的资源。

.resx 资源文件格式由 XML 项组成。与 .txt 文件相似,可以在这些 XML 项中指定字符串资源。与 .txt 文件相比,.resx 文件的主要优势在于还可以指定或嵌入对象。查看 .resx 文件时,如果嵌入对象(如图片)的二进制格式是资源清单的一部分,则可以实际看见此二进制信息。与 .txt 文件一样,可以用文本编辑器(如记事本或 Microsoft Word)打开 .resx 文件,编写、分析和操作其中的内容。注意:要完成这一步,必须非常熟悉 XML 标签和 .resx 文件结构。有关 .resx 文件格式的更多详细信息,请参见 .Resx 文件格式中的资源。

若要创建包含嵌入的非字符串对象的 .resources 文件,必须或者使用 Resgen.exe 转换包含对象的 .resx 文件,或者使用由 ResourceWriter 类提供的方法,直接从代码中将对象资源添加到文件中。如果使用 Resgen.exe 将包含对象的 .resources 文件转换为 .txt 文件,则所有字符串资源都会被正确转换,但非字符串对象的数据类型也会作为字符串写入该文件。在转换过程中将丢失嵌入的对象,并且 Resgen.exe 在检索资源时将报告有错误发生。

.NET Framework 2.0 版支持强类型资源。通过创建包含一组静态只读 (get) 属性的类,强类型资源支持对资源的封装访问,从而提供了另一种使用资源的方式,而不是直接使用 ResourceManager 类的方法。这一基本功能由 Resgen.exe 中的 /str 命令行选项提供,该选项包装了 StronglyTypedResourceBuilder 类的功能。指定 /str 选项时,Resgen.exe 的输出是一个包含强类型属性的类,这些属性与输入参数中引用的资源相匹配。此类提供了对所处理文件中可用资源的强类型只读访问。

【相关文章】好搜一下
思科交换机提供的三种交换模式

思科交换机提供的三种交换模式

交换机在交换数据帧时可以选择不同的模式来满足网络和用户的需要,思科的交换机提供三…