Я использую powershell 2.0 для редактирования большого количества файлов csproj. Одним из требований для редактирования, чтобы добавить новый PropertyGroup с различным состоянием (Пожалуйста, проверьте пример ниже)Xml namespace и C# csproj
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'">
Проблема заключается в том, что PowerShell добавлены пустые Xmlns для всех новых PropertyGroup тегов, которые я добавил.
Например:
<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");
Edit: Я следую за этот пост для добавления нового узла.
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);
Пожалуйста, добавьте код, который вы используете, чтобы добавить узлы. –
@ Энди спасибо. Я добавил код ady. –
Это тот же вопрос: http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/39af0a88-fedd-46d5-baea-12f8b2cfdacd (и основная проблема заключается в понимании пространств имен XML). – Richard