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

如何确保编译时从*.resx自动生成*.Designer.cs文件?

在.NET中构建时自动生成资源文件的Designer.cs(不依赖Visual Studio)

要实现不依赖Visual Studio,在构建阶段自动生成/更新.resx对应的Designer.cs文件,核心是通过MSBuild配置确保资源文件的生成逻辑在任何环境下都能执行,具体步骤如下:

  • 配置项目文件(.csproj)
    编辑你的项目文件,为目标.resx文件添加以下配置,指定代码生成器和输出路径:

    <ItemGroup>
      <EmbeddedResource Update="Resources\YourResourceFile.resx">
        <Generator>ResXFileCodeGenerator</Generator>
        <LastGenOutput>YourResourceFile.Designer.cs</LastGenOutput>
      </EmbeddedResource>
    </ItemGroup>
    

    其中Resources\YourResourceFile.resx替换为你实际的资源文件路径,YourResourceFile.Designer.cs对应生成的代码文件路径。

  • 通过dotnet CLI触发构建
    执行dotnet build命令时,MSBuild会自动检测.resx文件的变更,调用ResXFileCodeGenerator生成或更新Designer.cs文件,确保编译时能校验资源引用的有效性。

  • 自定义生成代码的属性(可选)
    如果需要调整生成代码的命名空间或访问修饰符,可以在项目配置中添加额外参数:

    <EmbeddedResource Update="Resources\YourResourceFile.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>YourResourceFile.Designer.cs</LastGenOutput>
      <AccessModifier>public</AccessModifier>
      <ResXFileCodeGeneratorNamespace>YourAppNamespace.Resources</ResXFileCodeGeneratorNamespace>
    </EmbeddedResource>
    

    这里AccessModifier可设置为public或internal,ResXFileCodeGeneratorNamespace用于指定生成类的命名空间。

  • 跨IDE兼容性
    无论使用Rider、VS Code还是其他支持.NET的开发工具,只要基于dotnet CLI或MSBuild执行构建,都会自动执行上述资源代码生成步骤,和Visual Studio的行为完全一致。

内容的提问来源于stack exchange,提问作者Josh Brunton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 11:12:04