资源文件生成器 (Resgen.exe)

资源文件生成器 (Resgen.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 通过包装由下列四类实现的方法来转换文件:

请注意,由 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 的输出是一个包含强类型属性的类,这些属性与输入参数中引用的资源相匹配。此类提供了对所处理文件中可用资源的强类型只读访问。

资源文件生成器 (Resgen.exe) 工具可使您创建 .resources 文件以及用来访问这些 .resources 文件的强类型包装。创建强类型包装时,.resources 文件的名称必须与生成的代码的命名空间和类名(例如,MyNamespace.MyClass.resources)匹配。但是,资源文件生成器 (Resgen.exe) 工具允许您指定生成名称不兼容的 .resources 文件的选项。若要避免此行为,请在资源文件生成器 (Resgen.exe) 工具生成输出文件后,重命名名称不兼容的输出文件。

用 Resgen.exe 创建完 .resources 文件后,请使用程序集链接器 (Al.exe) 将资源嵌入运行库二进制可执行文件或者将其编译为附属程序集。

Note注意

如果出于某种原因 Resgen.exe 失败,则返回值将为 –1。

Note注意

生成强类型资源类时,Resgen.exe 不接受包含空格的 .resx 文件名。它使用下划线(“_”)替换所有无效字符。有关更多信息,请参见VerifyResourceName

当未指定选项时,下列命令显示 Resgen.exe 的命令语法和选项。

resgen

下面的命令读取 myResources.txt 中的名称/值对,并写一个名为 myResources.resources. 的二进制资源文件。因为未显式指定输出文件名,所以它将默认采用与输入文件相同的名称。

resgen myResources.txt 

下面的命令读取 myResources.txt 中的名称/值对,并写一个名为 yourResources.resources 的二进制资源文件。

resgen myResources.txt yourResources.resources

下面的命令读取基于 XML 的输入文件 myResources.resx,并写一个名为 myResources.resources 的二进制资源文件。

resgen myResources.resx myResources.resources

下面的命令读取二进制资源文件 myResources.resources,并写一个名为 myResources.resx 的基于 XML 的输出文件。

resgen myResources.resources myResources.resx

下面的命令读取基于 XML 的输入文件 myResources.resx,并写一个名为 myResources.txt 的 .txt 文件。请注意,如果 .resx 文件包含任何嵌入对象,则这些嵌入对象不会准确地转换为 .txt 文件。

resgen myResources.resx myResources.txt

下面的命令读取基于 XML 的输入文件 myResources.resx,并写一个名为 myResources.resources 的二进制资源文件。它还生成一个名为 MyFile.vb 的 Visual Basic 文件,该文件中有一个名为 MyClass 的类,其中包含与输入文件中引用的资源相匹配的强类型属性。MyClass 类包含在名为 Namespace1 的命名空间中。

resgen myResources.resx myResources.resources /str:C#,Namespace1,MyClass,MyFile.cs

NET源文件生成器(ResourceWorkshop)是专业的源文件开发工具,集成了VS.NET中的所有源文件开发工具的功能,是.NET程序员的必备工具。它有中英文两种语言版本,支持多文档窗口,具有独特的文件关联功能,使您编缉源文件时更加得心应手。 主要功能: 1、支持.NET框架下的三种源文件格式(.txt文件、.resX文件和.Resources文件)。 2、支持字符串、颜色、图片、光标等各种源。 3、提供了添加、删除、重命名、剪切、复制、粘贴等常用编缉功能。 4、支持多文档窗口,可同时编缉多个文件。 5、可将不同源文件格式之间的相互转换。 6、可将多个不同格式的源文件合并为一个源文件。 7、提供了源文件关联功能,便于对照比较多个源文件。 设置源文件关联,是本程序的一个特色功能。将多个源文件关联在一起,并将其中一个作为主动文件,当主动文件的当前源项改变时,其它文件中的当前源项也随之变化,指向与之同名的源。类似Foxbase中数据库之间的关联功能,被动数据库中的记录指针随着主动数据库的记录指针变化。 当被动源文件中找不到与主动源文件中同名的源时,根据不同的设置,可定位到第一项源或询问是否复制源或自动复制源。 请到我们的主页http://www.guohuasoft.com下载最新版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值