资源文件生成器 (Resgen.exe) 工具可使您创建 .resources 文件以及用来访问这些 .resources 文件的强类型包装。创建强类型包装时,.resources 文件的名称必须与生成的代码的命名空间和类名(例如,MyNamespace.MyClass.resources)匹配。但是,资源文件生成器 (Resgen.exe) 工具允许您指定生成名称不兼容的 .resources 文件的选项。若要避免此行为,请在资源文件生成器 (Resgen.exe) 工具生成输出文件后,重命名名称不兼容的输出文件。
用 Resgen.exe 创建完 .resources 文件后,请使用程序集链接器 (Al.exe) 将资源嵌入运行库二进制可执行文件或者将其编译为附属程序集。
资源文件生成器将 .txt 文件和 .resx(基于 XML 的资源格式)文件转换为公共语言运行库二进制 .resources 文件,该文件可嵌入运行库二进制可执行文件或编译成附属程序集。有关部署和检索 .resources 文件的信息,请参见应用程序中的资源。
Resgen.exe 执行下列转换:
将 .txt 文件转换为 .resources 文件或 .resx 文件。
将 .resources 文件转换为文本文件或 .resx 文件。
将 .resx 文件转换为文本文件或 .resources 文件。
resgen [parameters] [/compile]filename.extension [outputFilename.extension] [/str:lang[,namespace[,class[,file]]]]
参数
参数 | 说明 |
---|---|
filename.extension | 要转换的输入文件的名称。extension 必须是下列值之一: .txt 指定要转换为 .resources 文件或 .resx 文件的文本文件的扩展名。文本文件只能包含字符串资源。 .resx 指定要转换为 .resources 文件或 .txt 文件的基于 XML 的资源文件的扩展名。 .resources 指定要转换为 .resx 文件或 .txt 文件的资源文件的扩展名。 |
outputFilename.extension | 要创建的资源文件的名称。 从 .txt 或 .resx 文件转换时,此参数是可选的。将文本文件或 .resx 文件转换为 .resources 文件时,可以指定 .resources 扩展名。如果不指定 outputFilename,Resgen.exe 将在输入 filename 参数中追加一个 .resources 扩展名并将该文件写入包含 filename 的目录。 从 .resources 文件转换时,outputFilename 参数是强制的。将 .resources 文件转换为基于 XML 的 .resources 文件时,请指定 .resx 扩展名。将 .resources 文件转换为文本文件时,请指定 .txt 扩展名。只有当 .resources 文件仅包含字符串值时,才应将 .resources 文件转换为 .txt 文件。 |
选项 | 说明 |
---|---|
/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 将发出警告,并忽略重复的名称。