我正在使用 powershell 2.0 来编辑很多 csproj 文件。编辑的要求之一是添加具有不同条件的新 PropertyGroup(请查看下面的示例)
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'">
问题是 powershell 为我添加的所有新 PropertyGroup 标签添加了空的 xmlns。
例如:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'" xmlns="">
有没有办法在没有任何命名空间的情况下添加新的 xml 节点?
在添加新的 PropertyGroup 之前,我尝试使用下面的代码删除命名空间属性,但它不起作用。(这意味着该属性实际上并未被删除,并且在添加新节点后我仍然可以看到空的命名空间。)
$content = [xml](gc $_.FullName);
Write-Host "Reading "$_.FullName -foregroundcolor yellow;
$project = $content.Project;
$content.Project.RemoveAttribute("xmlns");
编辑:我正在关注这篇文章以添加新节点。
如何从 powershell 将新的 PropertyGroup 添加到 csproj
例子:
$content = [xml](gc $_.FullName);
$importNode = $content.ImportNode($configs.DocumentElement, $true)
$project = $content.Project;
$project
$project.AppendChild($importNode);
# $content.Save($_.FullName);