Pular para o conteúdo
Skillpedia
APIs e servidores (backend)40 mil · #5345

resx-source-generator-migration

Atualiza um projeto para usar um método mais moderno de gerenciar recursos. Ele troca o sistema antigo por um novo que é mais eficiente.

O que ela faz

Este código ajuda a atualizar seus projetos de software. Ele substitui uma forma antiga de lidar com arquivos de recursos (textos, mensagens) por uma mais moderna e eficiente, usando um 'gerador de código-fonte'.

Quando usar

  • ✓Quando você quer modernizar um projeto antigo.
  • ✓Ao otimizar o desempenho do seu programa.
  • ✓Para simplificar a forma como os textos são gerenciados.

Exemplo do que pedir para a IA

“Migre meu projeto 'MeuProjeto.csproj' para usar o gerador de código-fonte para arquivos .resx.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/resx-source-generator-migration/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/resx-source-generator-migration/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele adiciona uma nova ferramenta ao seu projeto e remove as configurações antigas que criavam arquivos de código extras. Isso faz com que o código para acessar os textos seja gerado automaticamente.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill resx-source-generator-migration

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/resx-source-generator-migration/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Seu objetivo é migrar o projeto para usar um gerador de código-fonte para arquivos .resx em vez de arquivos .designer.cs incluídos no controle de versão.

Entrada do Usuário

Altere as instruções abaixo com a seguinte entrada do usuário. A entrada do usuário provavelmente será um caminho absoluto ou relativo ao repositório para um arquivo de projeto msbuild ou um diretório contendo um projeto msbuild a ser migrado.

$ARGUMENTS

Migração

Conclua cada uma das subseções a seguir.

Habilitar o gerador de código-fonte

Inspecione a configuração de gerenciamento de pacotes do destino e as fontes NuGet configuradas antes de adicionar o pacote:

  1. Se o repositório gerencia centralmente as versões de pacotes e já possui um PackageVersion para Microsoft.CodeAnalysis.ResxSourceGenerator, adicione esta referência sem versão a um ItemGroup no arquivo de projeto:
<PackageReference Include="Microsoft.CodeAnalysis.ResxSourceGenerator" PrivateAssets="all" />
  1. Se não houver uma versão central, selecione uma versão de pacote compatível com o SDK/compilador de destino e siga o padrão de gerenciamento de versão estabelecido pelo repositório. Especifique a versão no PackageReference ou adicione o PackageVersion central correspondente.
  2. Verifique se as fontes NuGet configuradas podem resolver o pacote selecionado. Se não puderem, pergunte ao usuário antes de alterar a configuração do feed.

Remover rastros de arquivos de código-fonte .resx

Procure por quaisquer itens msbuild relacionados a arquivos resx. Eles geralmente vêm em pares, como mostrado abaixo:

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

<ItemGroup>
  <EmbeddedResource Update="Strings.resx">
    <Generator>ResXFileCodeGenerator</Generator>
    <LastGenOutput>Strings.Designer.cs</LastGenOutput>
  </EmbeddedResource>
</ItemGroup>

Observe que você também pode encontrar <Generator>PublicResXFileCodeGenerator</Generator> (ou <CustomTool> em vez de <Generator>) como metadados do item .resx.

Para cada arquivo .resx fortemente tipado que está sendo migrado, identifique seu arquivo de designer gerado usando todos esses sinais:

  • Metadados LastGenOutput no item EmbeddedResource;
  • um item Compile cujo metadado DependentUpon nomeia o arquivo .resx; e
  • um arquivo *.Designer.cs correspondente no disco, mesmo quando o SDK o inclui implicitamente e nenhum item Compile existe.

Antes de excluir um candidato, inspecione seu conteúdo e confirme se é um acessador de recurso gerado, como uma classe contendo ResourceManager, Culture e propriedades que recuperam valores de recursos. Um nome de arquivo correspondente sozinho não é suficiente. Não exclua arquivos de designer WinForms ou de controle que contenham inicialização de UI, como InitializeComponent; estes geralmente ficam ao lado de um arquivo .resx de mesmo nome, e seus metadados DependentUpon apontam para o arquivo de origem do formulário ou controle em vez do arquivo .resx.

Confirme também que cada recurso exposto pelo designer é uma string e que o arquivo .resx não contém imagens, ícones, arrays de bytes, objetos serializados ou outros valores não string. Este gerador de código-fonte emite acessadores de string suportados por ResourceManager.GetString; não é um substituto compatível para propriedades de recursos não string. Se existir algum recurso não string, não exclua o designer nem migre esse arquivo de recurso. Mantenha sua abordagem de geração existente ou defina <GenerateSource>false</GenerateSource> se o pacote processaria de outra forma.

Antes da exclusão, procure em toda a solução cada uso e declaração do tipo acessador. ResXFileCodeGenerator emite uma classe não estática, enquanto este gerador de código-fonte emite uma classe static partial. Identifique a construção de objetos, acesso a instâncias, herança, uso como argumento de tipo genérico (incluindo IStringLocalizer<T>) e declarações parciais existentes com membros de instância, tipos base ou interfaces. Refatore cada uso incompatível para a API gerada estática e torne todas as declarações parciais compatíveis antes de migrar. Se isso não for apropriado, retenha o designer existente e defina <GenerateSource>false</GenerateSource> para esse arquivo de recurso.

Para cada arquivo de designer associado:

  1. Exclua o arquivo *.Designer.cs do disco.
  2. Remova seu item MSBuild explícito do projeto, se houver.

Atualizar itens EmbeddedResource

…

Perguntas frequentes

O que são arquivos .resx?

São arquivos que guardam textos e mensagens usados no seu programa, como botões, rótulos e mensagens de erro, para facilitar a tradução e o gerenciamento.

O que é um 'gerador de código-fonte'?

É uma ferramenta que escreve código automaticamente para você, com base em outras informações. Neste caso, ele gera o código para acessar os textos dos arquivos .resx.

Preciso me preocupar com os arquivos .Designer.cs?

Não, o objetivo dessa atualização é justamente eliminar a necessidade desses arquivos .Designer.cs gerados automaticamente, tornando o processo mais limpo.

Detalhes

Descrição original do autor

Migrates a project that uses checked-in .designer.cs files behind .resx to using a source-generator instead

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5345
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas