Сохранение данных в файле проекта MSBuild
Подтип проекта может сохранять данные подвид-специфического в файл проекта для последующего использования. Подтип проекта используется сохраняемость файла проекта, чтобы удовлетворять следующим требованиям:
Сохраняет данные, используемые в процессе построения проекта. (Дополнительные сведения о механизме построения Майкрософт, см. в разделе msbuild.) Может Построение-родственное сведения:
Конфигурация-независимые данные. То есть данные, хранящиеся в элементах msbuild с пустыми или пропавшими условиях.
Сведения о Конфигурация-зависимой ячейки. То есть данные, хранящиеся в элементах msbuild, которые подготовлены для заданной конфигурации проекта. Примеры.
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
Сохраняет данные, которые не являются значимыми для построения. Эти данные могут быть выражены в XML в свободной форме, не проверяется по схеме XML.
Конфигурация-независимые данные.
Сведения о Конфигурация-зависимой ячейки.
Сохранение Построение-Родственное сведения
Сохраняемость данных, полезных для построения проекта обрабатывается с помощью msbuild. Система msbuild ведет главной таблицы построение-родственного сведения. Подтипы проекта отвечают за доступ к этим данным для получения и задания значений свойства. Подтипы проекта также могут увеличить построение-родственную таблицу данных путем добавления дополнительных свойств для сохранения и удалять свойства поэтому они не сохраняются.
Чтобы изменить сведения о msbuild, подтип проекта отвечает за получение объект свойства msbuild из базовой системы проекта до конца IVsBuildPropertyStorage. IVsBuildPropertyStorage интерфейс, реализуемый в системе проектов core и выполнение статистического вычисления запросах подтипа для него путем запуска проекта QueryInterface.
В следующей процедуре конспектирует шаги для удаления свойство использование IVsBuildPropertyStorage.
Удалить свойство из файла проекта msbuild
Вызов QueryInterface на IVsBuildPropertyStorage подтипа проекта.
Вызов 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>