我在dotnet核心项目中复制了一个文件,在项目资源管理器中,无法更改其名称,因此将文件从项目中排除,在文件系统中重命名,然后再次添加到具有不同名称的项目中。现在,在.csproj
文件中,存在以下冗余行。
<None Remove="File - Copy of FileX.js"/>
我想删除它,我知道我可以手动编辑.csproj
文件,但在我看来应该有更好,更清洁,更友好的方式来摆脱这些冗余行。我找不到一个。
有人能告诉我标准方法吗?
答案 0 :(得分:0)
我认为你可能会得到一个适用于xml节点的powershell脚本:
param($path)
$MsbNS = @{msb = 'http://schemas.microsoft.com/developer/msbuild/2003'}
function RemoveElement([xml]$Project, [string]$XPath, [switch]$SingleNode)
{
$nodes = @(Select-Xml $XPath $Project -Namespace $MsbNS | Foreach {$_.Node})
if (!$nodes) { Write-Verbose "RemoveElement: XPath $XPath not found" }
if ($singleNode -and ($nodes.Count -gt 1)) {
throw "XPath $XPath found multiple nodes"
}
foreach ($node in $nodes)
$parentNode = $node.ParentNode
[void]$parentNode.RemoveChild($node)
}
}
$proj = [xml](Get-Content $path)
RemoveElement $proj '//msb:None Remove' -SingleNode
$proj.Save($path)
未经测试,但应该有效。