我正在尝试以编程方式将以下Target添加到我的Visual Studio项目文件中。
<Target Name="PostBuildEvent" Condition="'$(PostBuildEvent)'!=''" DependsOnTargets="$(PostBuildEventDependsOn)">
<Exec WorkingDirectory="$(OutDir)" Command="$(PostBuildEvent)" IgnoreExitCode="true" />
</Target>
我很确定IVsBuildPropertyStorage
或IVsBuildPropertyStorage2
不起作用,因为需要一个ProjectItem,即项目文件中<ItemGroup>
元素的节点。我想要做的是在<ItemGroup>
元素之外添加上面的xml。
我正在尝试使用Visual Studio SDK执行此操作以及文档&amp;这样做的例子似乎缺乏。截至本文发表时,我无法找到这样做的方法。我非常希望避免将项目文件(在本例中为Test.csproj)加载为XDocument
或XmlDocument
并以此方式添加Target元素节点。它似乎很乱,可能会导致更多问题。
作为额外奖励,我还想IgnoreOn退出单个PostBuildEvent
元素,但我很确定使用PostBuildEvent
元素无法实现这一点
答案 0 :(得分:2)
尝试在Microsoft.Build.Construction
命名空间中的AddTarget类上使用ProjectRootElement方法。该命名空间用于读取和写入MSBuild文件。