Я разбираю файл 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!