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
Mensagem pronta para colar
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-migrationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/resx-source-generator-migration/SKILL.md -o SKILL.mdConteú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:
- Se o repositório gerencia centralmente as versões de pacotes e já possui um
PackageVersionparaMicrosoft.CodeAnalysis.ResxSourceGenerator, adicione esta referência sem versão a umItemGroupno arquivo de projeto:
<PackageReference Include="Microsoft.CodeAnalysis.ResxSourceGenerator" PrivateAssets="all" />
- 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
PackageReferenceou adicione oPackageVersioncentral correspondente. - 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
LastGenOutputno itemEmbeddedResource; - um item
Compilecujo metadadoDependentUponnomeia o arquivo .resx; e - um arquivo
*.Designer.cscorrespondente no disco, mesmo quando o SDK o inclui implicitamente e nenhum itemCompileexiste.
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:
- Exclua o arquivo
*.Designer.csdo disco. - 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
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC