Я анализирую файл csproj для установки nuget, и у меня есть узел, который необходимо изменить.Рассматриваемый узел - это узел с именем «Генератор», где его значение равно «TextTemplatingFileGenerator», а его родительский узел имеет атрибут «WebConfigSettingsGeneratorScript.tt» (второй части здесь еще нет).
Вотсценарий, который у меня есть, но он не совсем готов.Работает, но сохраняет пустой файл.Кроме того, в нем нет 2-й части моего предложения 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!