PowerShell анализирует xml и сохраняет изменения

Я разбираю файл csproj для установки nuget, и у меня есть узел, который нужно изменить. Рассматриваемый узел - это узел с именем "Generator", где его значение равно "TextTemplatingFileGenerator", а его родительский узел имеет атрибут "WebConfigSettingsGeneratorScript.tt" (второй части здесь еще нет).

Вот сценарий, который У меня есть, но это еще не все. Работает, но сохраняет пустой файл. Кроме того, в нем нет второй части моего предложения where, которое является

$path = 'C:\Projects\Intouch\NuGetTestPackage\NuGetTestPackage'
cd $path
$files = get-childitem -recurse -filter *.csproj
foreach ($file in $files){
    ""
    "Filename: {0}" -f $($file.Name)
    "=" * ($($file.FullName.Length) + 10)   

    if($file.Name -eq 'NuGetTestPackage1.csproj'){
        $xml = gc $file.FullName | 
        Where-Object { $_.Project.ItemGroup.None.Generator -eq 'TextTemplatingFileGenerator' } | 
        ForEach-Object { $_.Project.ItemGroup.None.Generator = '' }
        Set-Content $file.FullName $xml
    }   
}

Вот базовая версия XML:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <None Include="T4\WebConfigSettingGeneratorScript.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>WebConfigSettingGeneratorScript.txt</LastGenOutput>
    </None>

Большое спасибо. Я полный PowerShell n00b!

10
задан Don Rolling 17 May 2011 в 22:10
поделиться