我正在尝试以编程方式将以下目标添加到我的 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 来执行此操作,但似乎缺少有关执行此操作的文档和示例。截至这篇文章的时间我无法找到这样做的方法。我真的想避免将项目文件(在本例中为 Test.csproj)加载为 XDocument
或 XmlDocument
并以这种方式添加目标元素节点。它看起来很乱,可能会导致更多问题。
作为额外的奖励,我还想 IgnoreOnExit 一个 PostBuildEvent
元素,但我很确定这对于 PostBuildEvent
是不可能的元素
最佳答案
尝试使用 AddTarget ProjectRootElement 上的方法Microsoft.Build.Construction
命名空间中的类。该命名空间用于读取和写入 MSBuild 文件。
关于c# - 以编程方式在 Visual Studio 项目文件中添加和编辑目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4511344/