Программное добавление и редактирование целей в файле проекта Visual Studio - PullRequest
3 голосов
/ 22 декабря 2010

Я пытаюсь программно добавить следующую цель в мой файл проекта Visual Studio.

<Target Name="PostBuildEvent" Condition="'$(PostBuildEvent)'!=''" DependsOnTargets="$(PostBuildEventDependsOn)">
      <Exec WorkingDirectory="$(OutDir)" Command="$(PostBuildEvent)" IgnoreExitCode="true" />
</Target>

Я почти уверен, что IVsBuildPropertyStorage или IVsBuildPropertyStorage2 не будет работать, так как требуется ProjectItem, иначеузел из элемента <ItemGroup> в файле проекта.Я хотел бы добавить вышеприведенный xml вне элемента <ItemGroup>.

Я пытаюсь использовать Visual Studio SDK для этого, и, похоже, отсутствует документация и примеры для выполнения этой задачи.,На момент написания этой статьи я не смог найти способ сделать это.Мне бы очень хотелось, чтобы не хотел загружать файл проекта (в данном случае Test.csproj) как XDocument или XmlDocument и таким образом добавлять узел элемента Target.Это выглядит грязно и может вызвать больше проблем.

В качестве дополнительного бонуса я также хотел бы IgnoreOnExit для одного элемента PostBuildEvent, но я уверен, что это невозможно с элементом PostBuildEvent

1 Ответ

2 голосов
/ 22 декабря 2010

Попробуйте использовать метод AddTarget в классе ProjectRootElement в пространстве имен Microsoft.Build.Construction.Это пространство имен используется для чтения и записи файлов MSBuild.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...