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

为何删除*.Designer.cs文件后项目构建失败?能否将其加入.gitignore?

核心原因

你当前配置使用的PublicResXFileCodeGenerator属于Visual Studio设计时生成器,仅在设计场景下触发运行,触发条件包括:在VS中修改resx文件后保存、右键resx文件选择「运行自定义工具」。该生成器不会被集成到MSBuild的标准构建流程中,因此删除Designer.cs后直接执行构建操作不会自动重新生成该文件,最终导致构建失败。

关于.gitignore规则的疑问

将自动生成的Designer.cs加入.gitignore的思路本身是合理的,只是传统的设计时生成器配置不支持这个使用方式,需要调整csproj配置改用SDK原生的构建时资源生成方案即可实现。

解决方案

方案一:改用构建时自动生成配置(推荐,支持忽略Designer.cs)

删除你现有csproj中贴出的两段EmbeddedResource和Compile配置,替换为以下内容:

<PropertyGroup>
  <!-- 开启SDK内置的强类型资源类生成功能 -->
  <GenerateEmbeddedResourcesManifest>True</GenerateEmbeddedResourcesManifest>
  <EmbeddedResourceUseDependentUponConvention>True</EmbeddedResourceUseDependentUponConvention>
  <!-- 生成公共访问级别的资源类,和原有PublicResXFileCodeGenerator效果对齐 -->
  <PublicClassForEmbeddedResource>True</PublicClassForEmbeddedResource>
</PropertyGroup>

<ItemGroup>
  <EmbeddedResource Include="Resources\*.resx" />
</ItemGroup>

修改后构建项目时,强类型资源类会自动生成到编译中间目录,不会在项目的Resources目录下生成Designer.cs文件,所有*.Designer.cs都可以加入.gitignore规则,无需提交到代码仓库。

方案二:保留原有设计时生成器配置

如果不修改原有配置,那么ErrorMessages.Designer.cs必须提交到代码仓库,不能加入.gitignore,否则所有克隆仓库的环境都无法正常构建项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:24:03