Udostępnij za pośrednictwem


Program Visual Studio 2012 nie może zapisać pliku podczas korzystania z Edytora zasobów

Ten artykuł pomaga rozwiązać problem polegający na tym, że program Microsoft Visual Studio 2012 nie może zapisać pliku podczas edytowania projektu Visual C++.

Oryginalna wersja produktu: Visual Studio Premium 2012, Visual Studio Ultimate 2012
Oryginalny numer KB: 2839032

Symptomy

Używasz programu Visual Studio 2012, w którym edytujesz projekt Visual C++ i wprowadzasz zmiany w oknie dialogowym w Edytorze zasobów. Zostanie wyświetlone nieoczekiwane okno komunikatu z komunikatem o błędzie:

Nie można zapisać pliku.

Zrzut ekranu przedstawiający okno dialogowe Nie można zapisać pliku.

Przyczyna

Wystąpił problem z interakcją funkcji Autoodzyskiwania z Edytorem zasobów. Gdy interwał autoodzyskiwania wygaśnie, jeśli zasób nie zostanie zapisany, autoodzyskiwanie próbuje go uzyskać.

Uwaga 16.

Domyślny interwał to co 5 minut.

Podczas zapisywania pliku zasobów próbuje zapisać plik o nazwie resource.hm. Resource.hm jest używana w przypadku korzystania z pomocy kontekstowej— opcji generowania natywnego projektu interfejsu użytkownika. Po jej włączeniu tworzy identyfikatory pomocy, które są zapisywane w pliku nagłówka identyfikatora pomocy, resource.hm. Nie będzie żadnych resource.hm , chyba że włączysz właściwość Identyfikator pomocy dla co najmniej jednego zasobu.

Rozwiązanie

  1. Unikaj zapisywania autoodzyskiwania edytowanych zasobów.

    1. Wyłącz opcję Autoodzyskiwania w obszarze Narzędzia>Opcje>Autoodzyskiwania środowiska>, usuwając zaznaczenie pola wyboru Zapisz informacje autoodzyskiwania co:

      Zrzut ekranu przedstawiający okno Opcje, aby wyczyścić wszystkie pola wyboru Zapisz automatycznie odzyskać informacje.

    2. Zapisz edytowane zasoby w określonym interwale, aby uniknąć wyzwalania automatycznego zapisywania. Możesz zwiększyć interwał, ale ten interwał zwiększa również ryzyko utraty niezapisanej pracy.

  2. Nie używaj pomocy kontekstowej.

    1. Jeśli nie używasz identyfikatora pomocy kontekstowej, wyłączenie tej opcji dla każdej kontrolki byłoby najprostszym rozwiązaniem. Wyłączenie go z edytora zasobów byłoby najbezpieczniejsze. W edytorze zasobów sprawdź wszystkie kontrolki, a jedną z właściwości będzie Identyfikator pomocy. Ustaw wartość False dla każdej kontrolki, w której ma wartość True.

      Zrzut ekranu przedstawiający okno Właściwości na karcie Widok zasobów z wyróżnionym identyfikatorem pomocy.

    2. Zamiast tego można bezpośrednio edytować plik rc. Na przykład usunięcie ostatniego parametru dla każdej kontrolki z identyfikatorem Pomocy spowoduje wyłączenie funkcji:

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