Compartir a través de


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

Este artículo le ayuda a resolver el problema en 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

Está utilizando Visual Studio 2012, donde edita un proyecto de Visual C++ y realiza cambios en un cuadro de diálogo en el Editor de recursos. Aparece un cuadro de mensaje inesperado con este mensaje de error:

No se puede guardar el archivo.

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

Causa

Hay un problema con la forma en que la función Autorrecuperación interactúa con el Editor de recursos. Cuando el intervalo Autorrecuperación expira, si el recurso no se guarda, Autorrecuperación lo intenta.

Nota:

El intervalo predeterminado es de 5 minutos.

Mientras se guarda el archivo de recursos, intenta guardar un archivo llamado resource.hm. El archivo resource.hm se usa cuando está utilizando la Ayuda contextual, una opción al generar un proyecto de IU nativo. Cuando lo habilita, crea ID de ayuda que se escriben en el archivo de encabezado de ID de ayuda, resource.hm. No habrá ningún resource.hm a menos que habilite la propiedad ID de ayuda para uno o más de sus recursos.

Solución

  1. Evite el guardado con Autorrecuperación de recursos editados.

    1. Desactive la opción Autorrecuperación en Herramientas>Opciones>Entorno>Autorrecuperación desmarcando la casilla Guardar información de autorrecuperación cada:

      Captura de pantalla de la ventana Opciones para desmarcar la casilla Guardar información de autorrecuperación cada.

    2. Guarde sus recursos editados dentro del intervalo especificado para evitar que se active el guardado automático. Puede aumentar el intervalo, pero hacerlo también incrementa el riesgo de perder el trabajo no guardado.

  2. No use la ayuda contextual.

    1. Si no está utilizando el ID de ayuda contextual, desactivarlo para cada control sería la solución más fácil. Lo más seguro sería desactivarlo desde el editor de recursos. En el editor de recursos, compruebe todos los controles y una de las propiedades será ID de ayuda. Póngalo en Falso en cada control donde está en Verdadero.

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

    2. En su lugar, puede editar el archivo .rc directamente. Por ejemplo, quitar el último parámetro aquí para cada control con un ID de ayuda desactivaría la función:

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