2013-03-29 2 views
2

Я пытаюсь работать над визуальным расширением студии, которую необходимо добавить свойство, которое получает сохранялось в текущий файл csproj так:Добавление свойства в ENVDTE.Project

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <MyProperty Condition="$(MyProperty) == '' Or $(MyProperty) == '*Undefined*'">MyPropertyValue</MyProperty> 

У меня есть EnvDTE. Project, но не может найти нигде в API для добавления нового свойства в проект.

Я могу обойти проблему, преобразовывая ее в проект MSBuild и добавляя свойство таким образом, но этот подход заставляет пользователя получать запрос о том, что файл csproj был изменен вне IDE и запрашивает их для повторной загрузки, чего я не хочу.

Как я могу добавить свойство с экземпляром ENVDTE.Project или предотвратить появление подсказки «Изменено вне среды» каким-либо другим способом?

ответ

1

Получил мою проблему в решении обходного пути проекта MSBuild.

Проблема, вызвавшая запрос пользователя на изменение файла проекта, заключалась в том, что я вызывал .Save() в объект проекта MSBuild, а не в объект проекта ENVDTE.

+1

Не могли бы вы подробнее остановиться на своем решении? Я пытаюсь понять, могу ли я использовать ваше решение, чтобы заставить меня идти по этому пути: http://stackoverflow.com/questions/20267268/add-code-analisys-ruleset-through-nuget-package –

Смежные вопросы