我正在尝试以编程方式将以下目标添加到我的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来执行此操作,并且似乎缺少执行此操作的文档和示例。截至撰写本文时,我无法找到一种方法。我真的想避免以
XDocument
或XmlDocument
的形式加载项目文件(在本例中为Test.csproj),并以这种方式添加Target元素节点。看起来很乱,可能会引起更多问题。另外,我还想忽略一个
PostBuildEvent
元素,但是我很确定使用PostBuildEvent
元素是不可能的 最佳答案
尝试在Microsoft.Build.Construction
名称空间的AddTarget类上使用ProjectRootElement方法。该名称空间用于读取和写入MSBuild文件。