Сохранение проекта

Сохраняемость — это ключевое руководство по проектированию проекта. Большинство проектов используют элементы проекта, представляющие файлы; Visual Studio также поддерживает проекты, данные которых не основаны на файлах. Файлы, принадлежащие проекту и файлу проекта, должны быть сохранены. Интегрированная среда разработки указывает проекту сохранить себя или элемент проекта.

Шаблоны для проектов передаются в фабрику проектов. Шаблоны должны поддерживать инициализацию всех элементов проекта в соответствии с требованиями конкретного типа проекта. Эти шаблоны позже можно сохранить в виде файлов проекта и управлять с помощью интегрированной среды разработки с помощью решения. Дополнительные сведения см. в статье "Создание экземпляров проекта с помощью фабрик и решений проекта".

Элементы проекта могут быть файловыми или нефайловыми:

  • Элементы на основе файлов могут быть локальными или удаленными. Например, в веб-проектах C#подключения к файлам в удаленной системе сохраняются локально, а сами файлы сохраняются в удаленной системе.

  • Элементы, не основанные на файлах, могут сохранять элементы в базе данных или репозитории.

Фиксация моделей

После определения расположения элементов проекта необходимо выбрать соответствующую модель фиксации. Например, в файловой модели с локальными файлами каждый проект можно сохранить автономно. В модели репозитория можно сохранить несколько элементов в одной транзакции. Дополнительные сведения см. в разделе "Решения по проектированию типов проектов".

Чтобы определить расширения имен файлов, проекты реализуют IPersistFileFormat интерфейс, который предоставляет сведения, позволяющие клиенту объекта реализовать диалоговое окно "Сохранить как", то есть заполнить раскрывающийся список "Сохранить как тип" и управлять начальным расширением имени файла.

Интегрированная среда разработки вызывает IPersistFileFormat интерфейс в проекте, чтобы указать, что проект должен сохранять элементы проекта соответствующим образом. Поэтому объект владеет всеми аспектами файла и формата. Сюда входит имя формата объекта.

В случае, если элементы не являются файлами, IPersistFileFormat по-прежнему сохраняется нефайловая версия. Файлы проекта, такие как VBP-файлы для проектов Visual Basic или vcproj-файлов для проектов Visual C++, также должны сохраняться.

Для действий сохранения интегрированная среда разработки проверяет запущенную таблицу документов (RDT), а иерархия передает команды IVsPersistHierarchyItem в интерфейсы и IVsPersistHierarchyItem2 интерфейсы. Метод IsItemDirty реализуется для определения того, был ли изменен элемент. Если элемент имеется, SaveItem метод реализуется для сохранения измененного элемента.

Методы интерфейса IVsPersistHierarchyItem2 используются для определения того, может ли элемент быть перезагрузлен и, если элемент может быть, чтобы перезагрузить его. Кроме того, метод можно реализовать, IgnoreItemFileChanges чтобы изменить элементы карта без сохранения.

См. также