Uso PowerShell 2.0 per modificare molti file csproj. Uno dei requisiti per la modifica è quello di aggiungere nuovi PropertyGroup con condizione diversa (Si prega di verificare l'esempio di seguito)namespace Xml e C# csproj
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'">
Il problema è che PowerShell aggiunti i xmlns vuote per tutti i nuovi tag PropertyGroup che ho aggiunto.
Esempio:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'" xmlns="">
Esiste un modo per aggiungere un nuovo nodo XML senza avere alcun namespace?
Ho provato a rimuovere l'attributo namespace utilizzando il codice seguente prima di aggiungere un nuovo PropertyGroup ma non ha funzionato. (Il che significa che attributo non viene effettivamente rimosso e posso ancora vedere lo spazio dei nomi vuoto dopo l'aggiunta di nuovo nodo.)
$content = [xml](gc $_.FullName);
Write-Host "Reading "$_.FullName -foregroundcolor yellow;
$project = $content.Project;
$content.Project.RemoveAttribute("xmlns");
Edit: Sto seguendo questo post per aggiungere nuovo nodo.
How to add new PropertyGroup to csproj from powershell
Esempio:
$content = [xml](gc $_.FullName);
$importNode = $content.ImportNode($configs.DocumentElement, $true)
$project = $content.Project;
$project
$project.AppendChild($importNode);
# $content.Save($_.FullName);
Si prega di aggiungere il codice che si utilizza per aggiungere i nodi. –
@Andy grazie. Ho aggiunto il codice ady. –
Questa è la stessa domanda: http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/39af0a88-fedd-46d5-baea-12f8b2cfdacd (e il problema di fondo è: capire i namespace XML). – Richard