私はPowerShell2.0を使用して多くのcsprojファイルを編集しています。編集の要件の1つは、条件の異なる新しい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からcsprojに新しいPropertyGroupを追加する方法
例:
$content = [xml](gc $_.FullName);
$importNode = $content.ImportNode($configs.DocumentElement, $true)
$project = $content.Project;
$project
$project.AppendChild($importNode);
# $content.Save($_.FullName);