O que é o formato de ficheiro RESOURCES?
Arquivos com a extensão .resources contêm dados usados por aplicativos desenvolvidos no ecossistema Microsoft .NET, mais frequentemente dentro do ambiente de desenvolvimento Visual Studio. Arquivos .resources armazenam objetos - como strings, imagens, ícones e dados binários - utilizados pelo aplicativo em tempo de execução.
Estes são arquivos binários compilados gerados automaticamente a partir de arquivos de origem .resx (recurso XML) pelo ResGen.exe (o Gerador de Arquivos de Recurso) durante o processo de compilação. O formato binário é identificado pelo número mágico 0xBEEFCACE no início do arquivo. Os desenvolvedores normalmente editam arquivos .resx no designer do Visual Studio; o arquivo .resources é um artefato de compilação intermediário que eles raramente tocam diretamente.
Colocar recursos de aplicativos em arquivos .resources permite referências diretas ao seu conteúdo no código-fonte por meio da classe ResourceManager. Para aplicativos já compilados, editores de recursos especializados podem substituir objetos originais - essa abordagem é mais comumente usada para criar localizações de idiomas de programas, substituindo os textos originais por seus equivalentes traduzidos, sem recompilar todo o aplicativo.
Em tempo de execução, o ResourceManager carrega o arquivo .resources compilado, seja incorporado no assembly principal ou como um assembly satélite (.resources.dll) para uma localidade específica.
Uma ressalva importante para o desenvolvimento .NET moderno: arquivos .resources que contêm objetos complexos serializados com BinaryFormatter foram descontinuados a partir do .NET 5 e bloqueados por padrão no .NET 7+ devido a riscos de segurança. Recursos de string, imagem e tipos primitivos não são afetados. O formato faz parte da plataforma .NET desde o .NET Framework 1.0 (2002) e permanece inalterado até o .NET 9 (2024).
Segurança e proteção
RISCO: LOWArquivos .resources em si são arquivos de dados, não executáveis. No entanto, eles podem conter objetos serializados com BinaryFormatter (estilo legado .NET 1-4) que, se desserializados, podem executar código arbitrário - é por isso que o .NET 7+ desativa o BinaryFormatter por padrão. Abrir um arquivo .resources em um editor de texto ou no ResGen.exe é seguro; apenas a desserialização de recursos de tipos complexos não confiáveis representa um risco.
Detalhes do formato
em resumoProgramas que abrem arquivos RESOURCES
Detalhes técnicos
especificação profunda| Tipo de arquivo | Arquivo de recurso .NET binário compilado |
| Número mágico | `0xBEEFCACE` (4 bytes, little-endian, no deslocamento 0) |
| Versão do cabeçalho | ResourceManager.HeaderVersionNumber = 1 (estável desde .NET 1.0) |
| Ordem dos bytes | Little-endian (inteiros do cabeçalho); a codificação dos dados de recurso varia por tipo |
| Codificação de string | UTF-16 LE para nomes de recursos; UTF-8 para nomes de tipos no cabeçalho |
| Ferramenta de compilação | `ResGen.exe` compila a partir da origem XML .resx; executado automaticamente durante a compilação do Visual Studio |
| Carregador de tempo de execução | `System.Resources.ResourceManager` - incorporado no assembly ou .resources.dll satélite |
| Tamanho típico | 1 KB - 10 MB (maior com imagens ou áudio incorporados) |
| Tipos primitivos | 19 tipos primitivos (string, int, bool, etc.) usam codificação binária compacta |
| Status do BinaryFormatter | Descontinuado no .NET 5+; desativado por padrão no .NET 7+ (risco de execução de código arbitrário) |
| Introduzido | .NET Framework 1.0 (fevereiro de 2002) |
| Suporte de plataforma | Windows (.NET Framework), Linux e macOS (.NET Core / .NET 5+) |
| Substituto UWP/WinAppSDK | .resw (mesmo esquema XML que .resx) compilado para .pri (Package Resource Index) |
| Lançado | .NET Framework 1.0 (2002) |
| Versão mais recente | .NET 9 (2024) - format unchanged since inception; ResourceManager.HeaderVersionNumber = 1 |
| Especificação | learn.microsoft.com |
Conversões de RESOURCES
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos RESOURCES.