C# VS2019 和VS2022 winform 资源 设计器
我在VS2022 的在C# WinForms项目(.NET Framework 4.7.2)创建了Resources.zh-CN.resx 我要深究这个问题。
我先在VS2019里面搞了一波,项目的.csproj 里面关于资源的代码如下:
<EmbeddedResource Include="Properties\Resources.resx"> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.cs</LastGenOutput> <SubType>Designer</SubType> </EmbeddedResource> <Compile Include="Properties\Resources.Designer.cs"> <AutoGen>True</AutoGen> <DependentUpon>Resources.resx</DependentUpon> </Compile> <EmbeddedResource Include="Properties\Resources.zh-CN.resx"> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>Resources.zh-CN.Designer.cs</LastGenOutput> </EmbeddedResource> <Compile Include="Properties\Resources.zh-CN.Designer.cs"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>Resources.zh-CN.resx</DependentUpon> </Compile>
AI给的解释:
EmbeddedResource: 表示将Properties/Resources.resx文件作为嵌入式资源嵌入到程序集中。
Generator: 使用ResXFileCodeGenerator工具自动生成对应的C#代码文件(Resources.Designer.cs)。
LastGenOutput: 指定生成的代码文件名。
SubType: 标记为Designer,表示这是设计时资源文件,IDE会将其归类到“设计器”类别。
Compile: 将Resources.Designer.cs包含在编译过程中。
AutoGen: 表示此文件是自动生成的,开发者不应手动修改。
DependentUpon: 在IDE中,此文件会嵌套在Resources.resx下显示,保持项目结构清晰。
Include: 本地化资源文件Resources.zh-CN.resx,遵循命名约定{基名}.{文化代码}.resx(如zh-CN表示中文简体)。
Generator: 同样生成对应的代码文件Resources.zh-CN.Designer.cs。
DesignTime: 标记此文件在设计时(如Visual Studio设计器)可用,确保本地化资源在设计界面中正确加载。
其他属性与主资源生成的代码文件类似。
**********************
资源嵌入: 所有.resx文件会被编译为嵌入式资源(最终在程序集的Resources目录中)。
强类型访问: 通过生成的Resources.Designer.cs,可以用Properties.Resources.ResourceName直接访问资源。
本地化支持: 不同语言的资源文件(如zh-CN)在运行时根据系统文化自动加载。
IDE集成: 依赖关系(DependentUpon)和子类型(SubType)优化了项目文件在IDE中的显示方式。
补充说明
ResXFileCodeGenerator: 生成强类型资源类,避免硬编码字符串。
文化特定资源: 若系统区域设置为zh-CN,会自动加载Resources.zh-CN.resx,未找到则回退到默认Resources.resx。
设计时支持: DesignTime=True确保设计器(如WinForms窗体设计器)能预览本地化文本。
**
以上是VS2019 的, 是正常的, 两个资源都可以用设计器打开

浙公网安备 33010602011771号