You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET6下生成*.resx或转换*.resources至*.resx的企业级方案咨询

.NET6下生成/转换.resx文件的企业级方案

方案1:引入官方兼容ResX API包(跨平台)

.NET6中虽移除了ResXResourceWriter的内置支持,但可通过引用System.Windows.Extensions NuGet包重新获得该类的跨平台实现。此包由微软官方维护,支持Windows、Linux、macOS,可直接沿用原有ResXResourceWriter的代码逻辑生成.resx文件,无需大幅修改业务代码。

示例代码:

using System.Resources;

// 初始化ResX资源写入器
using var writer = new ResXResourceWriter("Localization.resx");
// 添加资源键值对
writer.AddResource("Greeting", "Hello World");
writer.AddResource("ErrorMessage", "Operation failed");
// 生成最终.resx文件
writer.Generate();

方案2:自定义跨平台转换工具(.resources → .resx)

若已有生成的二进制.resources文件,可编写轻量级控制台工具,结合ResourceReader和ResXResourceWriter(依赖上述NuGet包)实现跨平台格式转换。该方式可控性强,可直接集成到CI/CD流水线中,满足自动化需求。

核心转换代码示例:

using System.Resources;

// 读取二进制.resources文件
using var reader = new ResourceReader("Localization.resources");
// 初始化.resx写入器
using var writer = new ResXResourceWriter("Localization.resx");

// 遍历资源项并写入.resx
foreach (DictionaryEntry entry in reader)
{
    writer.AddResource(entry.Key.ToString(), entry.Value);
}

writer.Generate();

方案3:MSBuild自动化转换

在项目的.csproj文件中添加自定义MSBuild目标,将转换逻辑嵌入构建流程,确保每次构建后自动完成.resources到.resx的格式转换,避免手动操作遗漏。

示例MSBuild配置:

<Target Name="ConvertResourcesToResX" AfterTargets="Build">
  <Exec Command="dotnet run --project $(SolutionDir)ResourceConverter/ResourceConverter.csproj -- $(OutputPath)Localization.resources $(OutputPath)Localization.resx" />
</Target>

方案4:利用.NET SDK内置资源处理能力

.NET6+ SDK提供了跨平台的资源处理API,可直接通过dotnet命令行或SDK类库实现.resx的生成与转换。例如,借助System.Resources.Extensions包中的API,可灵活定制资源文件的读写逻辑,完全替代传统resgen.exe的功能。

内容的提问来源于stack exchange,提问作者Vladislav Bratitsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:37:14