我有一个 Nuget 包,它在安装期间将一些 MSBuild 条目添加到项目 XML 中。这工作正常,产生以下(以及其他条目):
<PropertyGroup>
<JsCompilationToolsPath>some/path/determined/at/runtime</JsCompilationToolsPath>
</PropertyGroup>
但是,我在卸载期间无法删除该属性(及其生成的组元素)。我的 PowerShell-fu 有很多不足之处,但到目前为止我已经尝试了一些方法:
- 删除所有至少具有一个名为的 Property 元素的 PropertyGroup 元素
JsCompilationToolsPath
; - 移除所有已命名的 Property 元素
JsCompilationToolsPath
,然后移除所有没有子元素的 PropertyGroup 元素; - 只需删除命名的 Property 对象。
这是后一种尝试:
$msBuildProject.Properties | Where-Object { $_.Name -eq "JsCompilationToolsPath" } | ForEach-Object { $msBuildProject.RemoveProperty($_) }
这些方法都没有任何效果;脚本运行没有错误,但没有删除属性元素。
通过 PowerShell 删除 MSBuild 属性的正确方法是什么?