如何确保编译时从*.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
相关产品推荐
相关产品推荐

