加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Xml命名空间和C#csproj

发布时间:2020-12-16 23:50:56 所属栏目:百科 来源:网络整理
导读:我使用power shell 2.0来编辑很多csproj文件.编辑的一个要求是添加不同条件的新PropertyGroup(请检查下面的例子) PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'" 问题是,PowerShell为我添加的所有新的PropertyGroup标签
我使用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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读