Visual Studio 2012 no puede guardar el archivo mientras se usa el Editor de recursos

Este artículo le ayuda a resolver el problema por el que Microsoft Visual Studio 2012 no puede guardar el archivo mientras edita un proyecto de Visual C++.

Versión original del producto:   Visual Studio Premium 2012, Visual Studio Ultimate 2012
Número de KB original:   2839032

Síntomas

Usa Visual Studio 2012, donde está editando un proyecto de Visual C++ y realizando cambios en un cuadro de diálogo en el Editor de recursos. Aparece un cuadro de mensaje inesperado con el mensaje de error:

No se puede guardar el archivo.

Captura de pantalla del cuadro de diálogo No se puede guardar el error de archivo.

Causa

Hay un problema con la forma en que la característica Autorrecuperación interactúa con el Editor de recursos. Cuando expire el intervalo de autorrecuperación , si el recurso no se guarda, autorecuperación intenta hacerlo.

Nota

El intervalo predeterminado es cada 5 minutos.

Durante el guardado del archivo de recursos, intenta guardar un archivo denominado resource.hm. El resource.hm se usa cuando se usa Context-Sensitive Ayuda, una opción al generar un proyecto de interfaz de usuario nativo. Al habilitarlo, crea identificadores de ayuda que se escriben en el archivo de encabezado del identificador de ayuda, resource.hm. No habrá ningún resource.hm a menos que habilite la propiedad Id. de ayuda para uno o varios de los recursos.

Solución

  1. Evite guardar automáticamente los recursos editados.

    1. Deshabilite la opción Autorrecuperación en HerramientasOpcionesEnvironmentAutoRecover > > > , anulando la selección de la casilla Guardar información de autorrecuperación cada:

      Captura de pantalla de la ventana Opciones para desactivar la casilla Guardar información de recuperación automática cada vez.

    2. Guarde los recursos editados dentro del intervalo especificado para evitar que se desencadene autoguardar. Puede aumentar el intervalo, pero este intervalo también aumenta el riesgo de perder el trabajo no guardado.

  2. No use ayuda contextual.

    1. Si no usa el identificador de ayuda de contexto, desactivarlo para cada control sería la solución más sencilla. Desactivarlo desde el editor de recursos sería más seguro. En el editor de recursos, compruebe si todos los controles y una de las propiedades será Identificador de ayuda. Establézcalo en False para cada control donde sea True.

      Captura de pantalla de la ventana Propiedades en la pestaña Vista de recursos con el identificador de ayuda resaltado.

    2. En su lugar, podría editar el archivo .rc directamente. Por ejemplo, quitar el último parámetro aquí para cada control con un identificador de Ayuda desactivaría la característica:

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