Home > Mobile >  Why can't I delete *.Designer.cs files?
Why can't I delete *.Designer.cs files?

Time:11-09

I've got a simple project which contains resources (localization/globaliztion).

The part of *.csproj file looks like this:

<ItemGroup>
  <EmbeddedResource Update="Resources\ErrorMessages.resx">
    <Generator>PublicResXFileCodeGenerator</Generator>
    <LastGenOutput>ErrorMessages.Designer.cs</LastGenOutput>
  </EmbeddedResource>
</ItemGroup>

<ItemGroup>
  <Compile Update="Resources\ErrorMessages.Designer.cs">
    <DesignTime>True</DesignTime>
    <AutoGen>True</AutoGen>
    <DependentUpon>ErrorMessages.resx</DependentUpon>
  </Compile>
</ItemGroup>

So, as far as I understand ErrorMessages.Designer.cs file should always be compiled, but when I try to delete it and build the project this file is never compiled (created) and build fails.

I assumed that I could freely add those files to .gitignore but as far as I understand my thought process was incorrect, wasn't it?

CodePudding user response:

The designer files are (re)created, when the file that they represent as C# code does change (is saved/updated, etc.). In this case, the file is only regenerated when the ErrorMessages.resx file is saved/changed/updated. This doesn't happen during a build, but only when the user actively does that. You need to keep the designer files (also in source control) or your build will fail - as you have discovered.

(Note this is not to be confused with Roslyn Source Generators, where the generated files are (generally) not to be kept or checked into source control)

  • Related