Estoy usando powershell 2.0 para editar una gran cantidad de archivos csproj. Uno de los requisitos para la edición es añadir nueva PropertyGroup con diferentes condiciones (Por favor, compruebe el ejemplo a continuación)Espacio de nombres Xml y C# csproj
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'">
El problema es que los PowerShell añadió xmlns vacíos para todas las nuevas etiquetas PropertyGroup que he añadido.
Ej:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'" xmlns="">
¿Hay alguna forma de añadir un nuevo nodo XML sin tener ningún espacio de nombres?
Intenté eliminar el atributo de espacio de nombres utilizando el siguiente código antes de agregar un nuevo PropertyGroup pero no funcionó. (Lo que significa que el atributo no se elimina realmente y todavía se puede ver el espacio de nombres vacío después de la adición de un nuevo nodo.)
$content = [xml](gc $_.FullName);
Write-Host "Reading "$_.FullName -foregroundcolor yellow;
$project = $content.Project;
$content.Project.RemoveAttribute("xmlns");
Editar: estoy siguiendo este post para añadir un nuevo nodo.
How to add new PropertyGroup to csproj from powershell
Ejemplo:
$content = [xml](gc $_.FullName);
$importNode = $content.ImportNode($configs.DocumentElement, $true)
$project = $content.Project;
$project
$project.AppendChild($importNode);
# $content.Save($_.FullName);
favor agregar el código que está utilizando para agregar los nodos. –
@Andy gracias .i agregó el código ady. –
Esta es la misma pregunta: http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/39af0a88-fedd-46d5-baea-12f8b2cfdacd (y el problema subyacente es: comprensión de los espacios de nombres XML). – Richard