J'analyse un fichier csproj pour une installation nuget et j'ai un noeud qui doit être modifié. Le noeud en question est le noeud nommé "Generator" où sa valeur est égale à "TextTemplatingFileGenerator" et son noeud parent a un attribut de "WebConfigSettingsGeneratorScript.tt" (la deuxième partie n'est pas encore là).
Voici le script que j'ai, mais il n'est pas tout à fait terminé. Il fonctionne, mais il enregistre un fichier vide. De plus, il n'a pas la deuxième partie de ma clause where, qui est
$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
}
}
Voici une version de base du 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>
Merci beaucoup. Je suis un vrai n00b de PowerShell !