Обзор решений

Решение — это группирование одного или нескольких проектов, которые работают вместе для создания приложения. Сведения о проекте и состоянии, относящиеся к решению, хранятся в двух разных файлах решения. Файл решения (SLN) основан на тексте и может размещаться под управлением исходного кода и предоставлять общий доступ между пользователями. Файл пользователя решения (SUO) является двоичным. В результате suo-файл не может быть помещен в элемент управления исходным кодом и содержит сведения, относящиеся к пользователю.

Любой VSPackage может записывать данные в любой тип файла решения. Из-за природы файлов существует два разных интерфейса, реализованные для записи в них. Интерфейс IVsPersistSolutionProps записывает текстовые данные в SLN-файл, а IVsPersistSolutionOpts интерфейс записывает двоичные потоки в suo-файл.

Примечание.

Проект не должен явно записывать запись для себя в файл решения; Среда обрабатывает это для проекта. Поэтому, если вы не хотите добавить дополнительное содержимое в файл решения, вам не нужно регистрировать VSPackage таким образом.

Каждый VSPackage, поддерживающий сохраняемость решения, использует три интерфейса, IVsSolutionPersistence интерфейс, который реализуется средой и вызывается VSPackage, и IVsPersistSolutionPropsIVsPersistSolutionOpts, которые реализуются VSPackage. Интерфейс IVsPersistSolutionOpts необходимо реализовать только в том случае, если частная информация должна быть записана VSPackage в suo-файл.

При открытии решения выполняется следующий процесс.

  1. Среда считывает решение.

  2. Если среда находит объект, загружает соответствующий CLSIDVSPackage.

  3. Если vsPackage загружен, среда вызывает QueryInterfaceIVsPackage интерфейс для интерфейса, который требуется VSPackage.

    • При чтении из SLN-файла среда вызывается QueryInterfaceIVsPersistSolutionProps.

    • При чтении из suo-файла среда вызывает QueryInterface .IVsPersistSolutionOpts

    Конкретные сведения, касающиеся использования этих файлов, можно найти в файле File and Solution (SLN) File and Solution User Options (.suo).

Примечание.

Если вы хотите создать новую конфигурацию решения, состоящую из конфигураций двух проектов и исключив треть из сборки, необходимо использовать пользовательский интерфейс страниц свойств или автоматизацию. Конфигурации диспетчера сборки решений и их свойства нельзя изменить напрямую, но вы можете управлять диспетчером сборки решения с помощью SolutionBuild класса из DTE в модели автоматизации. Дополнительные сведения о настройке решений см. в разделе "Конфигурация решения".