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

如何将资源类与.resx资源设计器类合并为同一树状结构?

解决TFS项目中.resx文件与设计器类分离的问题

我之前从TFS拉取老项目时也碰到过一模一样的情况,不用删文件,跟着下面的步骤操作就能把它们恢复成嵌套的树状层级:

方法一:Visual Studio界面操作(推荐,适合多数场景)

  • 先确保项目处于显示所有文件状态(点击解决方案资源管理器顶部的「显示所有文件」按钮即可切换)。
  • 找到分离的.resx文件和对应的设计器类(比如Resources.resx与Resources.Designer.cs)。
  • 若设计器类不在项目中,选中它右键点击**「包含在项目中」**;已经在项目里的话跳过这步。
  • 右键点击设计器类,选择**「属性」**。
  • 在属性窗口中,确认**「生成操作」为Embedded Resource;找到「依赖项」**(部分版本叫「父文件」),下拉选择对应的.resx文件。
  • 保存项目并刷新解决方案资源管理器,就能看到设计器类嵌套到.resx文件下方了。

方法二:手动编辑.csproj项目文件(适合界面操作无效的情况)

要是界面操作没生效,大概率是项目文件里的关联配置出了问题,直接修改更稳妥:

  • 右键点击项目,选择**「卸载项目」**。
  • 再次右键点击卸载后的项目,选择**「编辑.csproj」**。
  • 在打开的XML文件里,找到对应设计器类的<Compile>节点,比如:
    <Compile Include="Resources.Designer.cs" />
    
  • 将其修改为嵌套在对应.resx的<EmbeddedResource>节点下,用<DependentUpon>标签关联,修改后示例如下:
    <EmbeddedResource Include="Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
    <Compile Include="Resources.Designer.cs">
      <DependentUpon>Resources.resx</DependentUpon>
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
    </Compile>
    
  • 保存.csproj文件,右键点击项目选择**「重新加载项目」**,刷新后就能看到嵌套结构了。

额外提醒:记得确认.resx文件的「自定义工具」属性是ResXFileCodeGenerator,这样设计器类会自动和.resx保持关联,后续就不会再出现分离的情况。

内容的提问来源于stack exchange,提问作者David Lerma Developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:11:50