Windows 资源本地化编辑器 Winres.exe是一种可视化布局工具,可帮助本地化专家本地化表单使用的 Windows 窗体用户界面(UI)资源。 可以使用视觉设计环境(如 Microsoft Visual Studio)创建用作 Winres.exe 输入的 .resx 或 .resources 文件。 有关在 .NET Framework 应用程序中部署资源的信息,请参阅 .NET 应用中的资源。
Winres.exe 随 Visual Studio 一起安装。 若要运行该工具,请使用 Visual Studio 开发人员命令提示符或 Visual Studio 开发人员 PowerShell。
警告
请勿使用此工具打开不受信任的文件。 如果文件是二进制文件,则会使用不安全的二进制反序列化对其进行反序列化。 有关详细信息,请参阅 使用 BinaryFormatter 和相关类型的反序列化风险。
Syntax
winres resourceFile
winres /?
Arguments
| 论点 | Description |
|---|---|
resourceFile |
要本地化的资源文件。 此文件必须是 Visual Studio 设计器生成的 Windows 窗体窗体 .resx 或 .resources 文件。 Winres.exe 无法打开泛型 .resx 或 .resources 文件。 |
| 选项 | Description |
|---|---|
| /? | 显示该工具的命令语法和选项。 |
注解
Windows 窗体项目中窗体中的 UI 元素的状态通常存储在资源文件中,这些文件是扩展名为 .resx 的基于 XML 的文件,或者是扩展名为 .resources 的相应编译二进制版本。 Winres.exe 是一种工具,可用于在 Visual Studio 设计环境之外对任一类型的文件进行有限的编辑。 具体而言,它允许以下类型的编辑作:
- 可以编辑中性或特定区域性资源文件以更改窗体或其控件的 UI 属性,例如其文本、大小或位置。
- 可以从默认资源文件生成中性或特定区域性资源文件。
- 区域性资源文件可以另存为另一个区域性资源文件。 例如,英语(美国)资源文件可以另存为波兰资源文件。 通常,将编辑新文件以与新区域性兼容。
另请参阅 用于本地化 的资源 的分层组织或用于本地化的资源的分层组织。
Winres.exe 无法将 .resx 文件转换为其相应的 .resources 文件;请改用 Resgen.exe 工具。 有关 Resgen.exe的详细信息,请参阅 Resgen.exe(资源文件生成器)。
Winres.exe 是一个图形应用程序,它仅从资源文件重新创建 Windows 窗体的设计时版本,而无需访问源代码。 Winres.exe 托管 Visual Studio 的 Windows 窗体窗体设计器 和 Properties 窗口。 这些功能支持可视化编辑包含 Windows 窗体的 .resources 或 .resx 文件。 通常,本地化人员使用 Winres.exe 来编辑控件标签,并调整控件的位置和大小以适应目标区域性的标签。
如果 Winres.exe 无法解析控件的类型,它将在本地化的 .resx 或 .resources 文件中创建占位符控件。 占位符控件以阴影窗口的形式显示在 Windows 窗体上。 阴影窗口的大小和位置与实际控件的大小和位置匹配。 占位符控件的所有可用可本地化属性都显示在 Properties 窗口中。 对占位符控件所做的任何更改都保存为实际控件。
Winres.exe 与 Visual Studio
通常,在开始本地化应用程序的 Windows 窗体窗体之前,应确定是要使用 Visual Studio 还是 Winres.exe 作为本地化工具。 版本兼容性(如稍后所述)可能会阻止你从一个工具切换到另一个工具。
Visual Studio 的优势在于,你可以使用它开发和本地化应用程序。 若要本地化窗体,请在开发完成后,将窗体(LocalizableAttributeLocalizable编辑器中的Properties属性)true设置为并将其Language属性更改为所需的目标区域性。 然后,编辑字符串并调整控件的位置和大小,以适应目标区域性的字符串。 保存本地化的 .resx 文件时,Visual Studio 仅将可本地化的属性(目标区域性中更改的属性)写入文件。 Visual Studio 会自动为正确的目录位置中的本地化 .resx 文件创建附属程序集。
尽管 Visual Studio 提供了集成开发和本地化环境,但建议使用 Winres.exe 第三方本地化人员进行本地化时使用的工具。 由于 Winres.exe 只是本地化工具,因此它允许更简洁地将应用程序的代码与要本地化的表单分离,这对于管理大型项目更为实用。
使用 Winres.exe
若要使用 Winres.exe进行本地化,必须先使用视觉设计器(如 Visual Studio 中的 Windows 窗体设计器 )开发应用程序。 开发完成后,将窗体LocalizableAttribute(编辑器中的Properties属性)设置为true,然后将默认区域性的 .resx 文件移交给第三Localizable方本地化程序。 此 .resx 文件包含 Winres.exe 用于重新创建原始窗体的设计时版本的额外信息。
注释
Winres.exe 不能用于编辑默认资源文件。 Winres.exe 将所有已更改的属性解释为本地化属性,并将其保存到目标区域性资源文件中。
最终可以使用区域性资源文件的最终版本来创建应用程序的本地化版本。 有关详细信息,请参阅 .NET 应用中的资源。
Winres.exe 具有以下特性和功能:
Winres 可以在单文件模式(SFM)或 Visual Studio 文件模式(VSFM)中运行。 SFM 是旧模式,其中表单及其内容的完整信息存储在资源文件中。 VSFM 仅存储资源文件中的文化更改。
错误报告窗口,停靠在主窗口的左下角。
可以检查热键是否存在重复项:在
Format菜单中,单击 “检查 HotKeys ”命令。
版本兼容性
应使用随正在使用的 .NET Framework 一起发布的 Winres.exe 版本。 下表列出了兼容的版本:
| Visual Studio | .NET Framework | Winres.exe |
|---|---|---|
| Visual Studio .NET 2002 | 1.0 | 1.0 |
| Visual Studio .NET 2003 | 1.1 | 1.1 |
| Visual Studio 2005 | 2.0 | 2.0 |
| Visual Studio 2008 | 3.0 和 3.5 | 3.0 和 3.5 |
| Visual Studio 2010 | 4.0 | 4.0 |
| Visual Studio 2017 | 4.6 | 4.6 |
注释
尽管 VSFM 具有与 Visual Studio 兼容的优势,因为它仅将更改的值存储在资源文件中,Winres.exe 要求当前资源文件的父文件位于同一目录中。 例如,在德国编辑 TestApp.de-DE.resources的德语资源文件需要存在默认资源文件, TestApp.resx并且可能是非区域性资源文件 TestApp.de.resources。
例子
本地化与表单关联的 .resx 或 .resources 文件
若要运行 Winres.exe,请在开发人员命令提示符中输入
winres。若要打开要本地化的窗体的默认资源,请选择“ 文件 > 打开 ”并导航到该文件以打开它。
-或-
指定在开始 Winres.exe时在命令行中打开的文件。 以下命令开始 Winres.exe 并加载与窗体设计器中关联的
TestApp.resx表单。winres TestApp.resx以下命令开始 Winres.exe 并加载与窗体设计器中关联的
TestApp.resources表单。winres TestApp.resources注释
如果要编辑的资源为继承窗体的窗体,则程序集包含继承的窗体和包含继承(派生)窗体的程序集都必须在全局程序集缓存(GAC)中注册,或者必须位于与 WinRes.exe相同的目录中。 有关将 .NET Framework 组件安装到 GAC 的详细信息,请参阅 全局程序集缓存。
选择窗体上的控件并更改其 Text 和其他属性以反映本地化区域性及其语言。 根据需要移动或调整控件的大小以适应本地化文本。
若要保存 .resx 或 .resources 文件的本地化版本,请单击
Save图标或选择“ 文件 > 保存”。 该工具显示 “选择区域性” 窗口。选择适当的区域性和文件模式,然后单击“ 确定”。
该工具使用运行时预期的本地化资源文件的命名约定保存文件。 例如,如果在
TestApp.resources德国本地化德语,该工具会将文件保存为TestApp.de-DE.resources。 如果在德国本地化TestApp.resx德语,该工具会将该文件保存为TestApp.de-DE.resx。 有关资源命名约定的详细信息,请参阅 包和部署资源。 有关运行时使用的预定义区域性名称的列表,请参阅该 CultureInfo 类。