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

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

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

Project элементы могут быть файловыми или не основанными на файлах:

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

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

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

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

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

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

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

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

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

См. также