以编程方式在Visual Studio项目文件中添加和编辑目标

时间:2010-12-22 16:33:46

标签: c# .net visual-studio-2010 msbuild visual-studio-sdk

我正在尝试以编程方式将以下Target添加到我的Visual Studio项目文件中。

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

我很确定IVsBuildPropertyStorageIVsBuildPropertyStorage2不起作用,因为需要一个ProjectItem,即项目文件中<ItemGroup>元素的节点。我想要做的是在<ItemGroup>元素之外添加上面的xml。

我正在尝试使用Visual Studio SDK执行此操作以及文档&amp;这样做的例子似乎缺乏。截至本文发表时,我无法找到这样做的方法。我非常希望避免将项目文件(在本例中为Test.csproj)加载为XDocumentXmlDocument并以此方式添加Target元素节点。它似乎很乱,可能会导致更多问题。

作为额外奖励,我还想IgnoreOn退出单个PostBuildEvent元素,但我很确定使用PostBuildEvent元素无法实现这一点

1 个答案:

答案 0 :(得分:2)

尝试在Microsoft.Build.Construction命名空间中的AddTarget类上使用ProjectRootElement方法。该命名空间用于读取和写入MSBuild文件。