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

如何在dotnet build构建过程中从resx文件生成.Designer.cs文件?

实现dotnet build自动生成.Designer.cs并排除源码控制

要让.Designer.cs文件在dotnet build过程中自动生成,同时不用提交到源码控制,按以下步骤操作:

1. 修改项目文件(.csproj)配置

核心是告诉MSBuild在构建阶段而非仅IDE设计阶段生成Designer文件,分WinForms和WPF两种情况调整:

WinForms项目

在.csproj中添加或更新以下配置:

<ItemGroup>
  <!-- 配置Designer文件由对应窗体类触发生成 -->
  <Compile Update="**\*.Designer.cs">
    <AutoGen>True</AutoGen>
    <!-- 关闭仅设计时生成,让构建流程触发 -->
    <DesignTime>False</DesignTime>
    <DependentUpon>%(Filename.Replace(".Designer", ""))</DependentUpon>
  </Compile>
  <!-- 关联resx文件,确保资源文件的生成逻辑同步 -->
  <EmbeddedResource Update="**\*.resx">
    <AutoGen>True</AutoGen>
    <DesignTime>False</DesignTime>
    <DependentUpon>%(Filename.Replace(".resx", ""))</DependentUpon>
  </EmbeddedResource>
</ItemGroup>

WPF项目

针对XAML对应的Designer文件,修改.csproj如下:

<ItemGroup>
  <Compile Update="**\*.Designer.cs">
    <AutoGen>True</AutoGen>
    <DesignTime>False</DesignTime>
    <DependentUpon>%(Filename.Replace(".Designer", ""))</DependentUpon>
  </Compile>
  <!-- 关联XAML文件,确保布局文件的生成逻辑触发 -->
  <Page Update="**\*.xaml">
    <AutoGen>True</AutoGen>
    <DesignTime>False</DesignTime>
    <SubType>Designer</SubType>
  </Page>
</ItemGroup>

2. 配置源码控制忽略规则

把自动生成的.Designer.cs排除在源码控制外:

  • Git:在项目根目录的.gitignore中添加一行:
    **/*.Designer.cs
    
  • SVN:在svn:ignore属性中添加*.Designer.cs(可通过IDE或svn propset命令设置)

3. 验证构建流程

  1. 删除项目中已有的所有.Designer.cs文件
  2. 执行命令:dotnet build
  3. 检查项目目录或输出目录,确认对应的.Designer.cs文件已自动生成
  4. 打开VS/Rider,IDE会识别自动生成规则,不会因文件缺失报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:42:15