如何使用 PowerShell 删除 csproj 中的元素

How to remove elements in csproj with PowerShell

我尝试从 .csproj 文件中删除 <ItemGroup> 元素,但我的脚本什么也没做。我做错了什么?

脚本:

[xml]$csproj = Get-Content -Path ".\PackageTest.csproj"

$refs = $csproj.Project.ItemGroup | Where-Object {$_.Content.Include -like "PkgFolder\managed*"} 

ForEach($ref in $refs)
{
    $csproj.Project.RemoveChild($ref)
}

$csproj.Save(".\PackageTest.csproj") 

我的 csproj 文件:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
#
# smthng
#      
  <ItemGroup>
    <Content Include="PkgFolder\managed1.zip">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>      
  <ItemGroup>
    <Content Include="PkgFolder\managed2.zip">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>      
  <ItemGroup>
    <Content Include="PkgFolder\managed3.zip">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>         
#
# smthng
#            
</Project>

第一个:

$file = gi ".\PackageTest.csproj"
[xml]$csproj = Get-Content $file

第二个:

$csproj.Save($file.FullName)