O Visual Studio 2012 não pode salvar o arquivo enquanto você usa o Editor de Recursos

Este artigo ajuda você a resolver o problema em que o Microsoft Visual Studio 2012 não pode salvar o arquivo enquanto você edita um projeto do Visual C++.

Versão original do produto: Visual Studio Premium 2012, Visual Studio Ultimate 2012
Número de KB original: 2839032

Sintomas

Você está usando o Visual Studio 2012, onde está editando um projeto do Visual C++ e fazendo alterações em uma caixa de diálogo no Editor de Recursos. Uma caixa de mensagem inesperada é exibida com a mensagem de erro:

Não é possível salvar o arquivo.

Captura de tela da caixa de diálogo Não é possível salvar o erro do arquivo.

Motivo

Há um problema com a forma como o recurso AutoRecuperação está interagindo com o Editor de Recursos. Quando o intervalo de AutoRecuperação expira, se o recurso não for salvo, a AutoRecuperação tentará fazer isso.

Observação

O intervalo padrão é a cada 5 minutos.

Durante o salvamento do arquivo de recurso, ele tenta salvar um arquivo chamado resource.hm. O resource.hm é usado quando você está usando a Ajuda sensível ao contexto, uma opção ao gerar um projeto de UI nativo. Ao habilitá-lo, ele cria IDs de ajuda que são gravadas no arquivo de cabeçalho de IDs de ajuda, resource.hm. Não haverá resource.hm caso não habilite a propriedade ID de Ajuda para um ou mais de seus recursos.

Resolução

  1. Evite AutoRecuperação de recursos editados.

    1. Desative a opção AutoRecuperação em FerramentasOpçõesAmbienteAutoRecuperação, desmarcando a caixa de seleção Salvar informações de AutoRecuperação a cada:

      Captura de tela da janela Opções para desmarcar a caixa de seleção de salvar informações de Recuperação Automática a cada vez.

    2. Salve os recursos editados no intervalo especificado para evitar o acionamento do Salvamento Automático. Você pode aumentar o intervalo, mas esse intervalo também aumenta o risco de perder trabalho não salvo.

  2. Não use ajuda sensível ao contexto.

    1. Se você não estiver usando a ID de ajuda de contexto, desativar isso para cada controle seria a solução mais fácil. Desativá-lo do editor de recursos seria mais seguro. No editor de recursos, verifique todos os controles e uma das propriedades é o ID de Ajuda. Defina-o como False para cada controle onde ele é True.

      Captura de tela da janela Propriedades na guia Visualização de Recursos com a ID de Ajuda realçada.

    2. Em vez disso, você pode editar o arquivo .rc diretamente. Por exemplo, remover o último parâmetro aqui para cada controle com uma ID de Ajuda desativaria o recurso:

      DEFPUSHBUTTON "OK", IDOK,103,31,50,14,WS_GROUP,0,HIDOK