Visual Studio 2012 ne peut pas enregistrer le fichier pendant l’utilisation de l’éditeur de ressources

Cet article vous aide à résoudre le problème où Microsoft Visual Studio 2012 ne peut pas enregistrer un fichier lorsque vous modifiez un projet Visual C++.

Version du produit d’origine :   Visual Studio Premium 2012, Visual Studio Ultimate 2012
Numéro de la base de connaissances initiale :   2839032

Symptômes

Vous utilisez Visual Studio 2012, où vous modifiez un projet Visual C++ et apportez des modifications à une boîte de dialogue dans l’éditeur de ressources. Une boîte de message inattendue s’affiche avec le message d’erreur :

Impossible d’enregistrer l’erreur de fichier

Cause

Il y a un problème avec la fonctionnalité de récupération automatique qui interagit avec l’éditeur de ressources. Lorsque l’intervalle de récupération automatique expire, si la ressource n’est pas enregistrée, la récupération automatique tente de la récupérer.

Notes

L’intervalle par défaut est de 5 minutes.

Lors de l’enregistrement du fichier de ressources, il tente d’enregistrer un fichier nommé Resource.HM. Le Resource.HM est utilisé lorsque vous utilisez l’aide contextuelle, une option lors de la génération d’un projet d’interface utilisateur natif. Lorsque vous l’activez, il crée des ID d’aide qui sont écrits dans le fichier d’en-tête de l’ID de l’aide, Resource.HM. Il n’y aura pas de Resource.HM sauf si vous activez la propriété d’ID de l' aide pour une ou plusieurs de vos ressources.

Résolution

  1. Évitez la récupération automatique des ressources modifiées.

    1. Désactivez l’option de récupération automatique dans Outils > optionsde > Environment > récupération automatiqued’environnement, en désactivant la case à cocher enregistrer les informations de récupération automatique toutes les : :

      Non sélectionné enregistrer les informations de récupération automatique toutes les cases à cocher

    2. Enregistrez vos ressources modifiées dans l’intervalle spécifié pour éviter le déclenchement de l’enregistrement automatique. Vous pouvez augmenter l’intervalle, mais cet intervalle augmente également le risque de perte de travail non enregistré.

  2. Ne pas utiliser l’aide contextuelle.

    1. Si vous n’utilisez pas l’ID d’aide contextuelle, la solution la plus simple est de désactiver cette fonctionnalité pour chaque contrôle. Pour le désactiver, il est préférable de l’activer dans l’éditeur de ressources. Dans l’éditeur de ressources, vérifiez que tous les contrôles et l’une des propriétés sont des ID d’aide. Affectez-lui la valeur false pour chaque contrôle dont la valeur est true.

      ID d’aide des propriétés des contrôles

    2. Au lieu de cela, vous pouvez modifier le fichier. RC directement. Par exemple, si vous supprimez le dernier paramètre ici pour chaque contrôle avec un ID d’aide , la fonctionnalité est désactivée :

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