Поделиться через


Сохранение данных в файле проекта MSBuild

Подтип проекта может сохранять данные подвид-специфического в файл проекта для последующего использования. Подтип проекта используется сохраняемость файла проекта, чтобы удовлетворять следующим требованиям:

  1. Сохраняет данные, используемые в процессе построения проекта. (Дополнительные сведения о механизме построения Майкрософт, см. в разделе msbuild.) Может Построение-родственное сведения:

    1. Конфигурация-независимые данные. То есть данные, хранящиеся в элементах msbuild с пустыми или пропавшими условиях.

    2. Сведения о Конфигурация-зависимой ячейки. То есть данные, хранящиеся в элементах msbuild, которые подготовлены для заданной конфигурации проекта. Примеры.

      <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
      
  2. Сохраняет данные, которые не являются значимыми для построения. Эти данные могут быть выражены в XML в свободной форме, не проверяется по схеме XML.

    1. Конфигурация-независимые данные.

    2. Сведения о Конфигурация-зависимой ячейки.

Сохранение Построение-Родственное сведения

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

Чтобы изменить сведения о msbuild, подтип проекта отвечает за получение объект свойства msbuild из базовой системы проекта до конца IVsBuildPropertyStorage. IVsBuildPropertyStorage интерфейс, реализуемый в системе проектов core и выполнение статистического вычисления запросах подтипа для него путем запуска проекта QueryInterface.

В следующей процедуре конспектирует шаги для удаления свойство использование IVsBuildPropertyStorage.

Удалить свойство из файла проекта msbuild

  1. Вызов QueryInterface на IVsBuildPropertyStorage подтипа проекта.

  2. Вызов RemoveProperty с pszPropName присваивается свойству, которое необходимо удалить.

Сохранение данные, связанные с Non-Построения

Сохранение данных в файлах проекта, которые не имеют значение для построения обрабатывается до конца IPersistXMLFragment.

Можно реализовать IPersistXMLFragment на основе project subtype aggregator объект project subtype project configuration объект или то и другое.

Следующие пункты конспектируют основные понятия, касающиеся сохраняемости данных о non-построения связанных.

  • Основные вызовы проекта в основном объекте накопителя подтипа проекта (то есть внешней подтипа проекта) для загрузки и сохранения данных о конфигурации независимые и их вызывающие объекты конфигурации проекта подтипа проекта, чтобы загрузить или сохранить данные зависимых конфигурации.

  • Базовый проект вызывает методы IPersistXMLFragment несколько раз для каждого уровня статистической обработки подтипа проекта и передает идентификатор GUID для каждого уровня.

  • Базовый проект передает или возвращает фрагмент xml-кода, который предназначен в указанный подвиду проекта и использует этот механизм как способ сохранения состояния между уровнями статистической обработки.

  • Базовый проект называется внешней подтип проекта IPersistXMLFragmentреализация передавая идентификатор GUID. Если идентификатор GUID принадлежит к внешней подвиду проекта, то он обрабатывает вызов самого; в противном случае вызов на внутреннее подвиду делегатов проекта и т д до тех пор, пока подтип проекта, что идентификатор GUID соответствующего не найден.

  • Подтип проекта может также изменить xml-фрагментов до или после их делегатов вызов на внутреннее подвиду проекта. В следующем примере показана вероятность из файла проекта, где имя файла, который содержит свойства, относящиеся к подвиду проекта, передаваемый этому подвиду проекта.

    <ProjectExtensions>
        <VisualStudio>
          <FlavorProperties GUID="{<FlavorGUID>}">
            <FlavorProject TestFileFolder="TestFile" />
          </FlavorProperties>
        </VisualStudio>
      </ProjectExtensions>
    

См. также

Другие ресурсы

подтипы проекта