我使用power
shell 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");
编辑:我正在跟随这个帖子添加新的节点.
How to add new PropertyGroup to csproj from powershell
例:
$content = [xml](gc $_.FullName); $importNode = $content.ImportNode($configs.DocumentElement,$true) $project = $content.Project; $project $project.AppendChild($importNode); # $content.Save($_.FullName);
看这个线程:
http://bytes.com/topic/net/answers/377888-importing-nodes-without-namespace,似乎它不能轻易完成,可以,但是去解决方法:
代替:
$content.Save($_.FullName);
使用:
$content = [xml] $content.OuterXml.Replace(" xmlns=`"`"","") $content.Save($_.FullName);