मैं कई csproj फ़ाइलों को संपादित करने के लिए powerhell 2.0 का उपयोग कर रहा हूं। संपादन के लिए आवश्यकताओं में से एक अलग शर्त के साथ नई PropertyGroup जोड़ने के लिए (नीचे दिए गए उदाहरण की जांच करें)एक्सएमएल नेमस्पेस और सी # सीस्पोज
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'">
समस्या यह है कि powershell सभी नए PropertyGroup टैग है कि मैं जोड़ लिया है के लिए खाली xmlns जोड़ा है।
उदाहरण के लिए:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'" xmlns="">
वहाँ किसी भी तरह से किसी भी नाम स्थान बिना नई xml नोड को जोड़ने के लिए है?
मैंने नया प्रॉपर्टी ग्रुप जोड़ने से पहले नीचे दिए गए कोड का उपयोग करके नेमस्पेस विशेषता को हटाने का प्रयास किया लेकिन यह काम नहीं किया। (जिसका अर्थ है कि विशेषता वास्तव में नहीं हटाया जाता है और मैं अभी भी नए नोड जोड़ने के बाद खाली नाम स्थान देख सकते हैं।)
$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://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/39af0a88-fedd-46d5-baea-12f8b2cfdacd (और अंतर्निहित समस्या है: एक्सएमएल नेमस्पेस को समझना)। – Richard