J'ai un fichier de solution de studio visuel contenant plusieurs projets.Mise à jour de la configuration des projets Visual Studio pour chaque projet dans le fichier de solution Visual Studio
Pour une configuration de solution donnée, disons par exemple Dev, peu de projets utilisent la configuration de débogage. Je souhaite que tous les projets utilisent la configuration Dev pour la configuration de la solution Dev. Au lieu d'utiliser Configuration Manager et de mettre à jour la configuration de chaque projet pour toutes les options de plate-forme possibles (x64, Any CPU, plates-formes mixtes), je veux pouvoir automatiser cela. Il est très fastidieux d'utiliser Configuration Manager pour mettre à jour cette configuration pour toutes les configurations de solution pour tous les projets.
Parce que j'ai plus de 5 configuration de la solution et il y a plus de 20 projets dans la solution.
Modifier le fichier de solution dans un bloc-notes ++ aiderait je devine. Je dois encore essayer cela. Mais est-ce le seul moyen?
Mise à jour:
J'ai rédigé un script simple PS pour y parvenir en utilisant Powershell pour mettre à jour le fichier SLN, pour une configuration sln. Mais à la recherche d'autres moyens aussi.
$content = Get-Content "E:\SlnFolder\SolutionFile.sln" | ForEach-Object {
$line = $_
if ($line -match "(^\s*{[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+}.Dev\|[a-zA-Z0-9\.\s]+ =)([a-zA-Z\s]+)")
{
$line -replace "(^\s*{[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+}.Dev\|[a-zA-Z0-9\.\s]+ =)([a-zA-Z\s]+)",'$1Dev'
}
else
{
$line
}
} | Set-Content -Path "E:\SlnFolder\SolutionFile_Updated.sln"
Il y a assez de place pour polir ce script. Va vérifier ça.
alternative est d'éditer les fichiers via Microsoft.Build.BuildEngine, voir par exemple http://stackoverflow.com/questions/7887538/modify-programatically-csproj-files#8492560 – stijn
@stijn - La réponse discutée au fil que vous avez donné est maintenant obsolète. J'ai trouvé un autre fil [http://stackoverflow.com/questions/707107/parsing-visual-studio-solution-files] où il y a une réponse pour la nouvelle façon d'utiliser Microsoft.Build.Construction.SolutionFile.Parse () méthode avec VS 2015. Le chemin MSBuild est C: \ Program Files (x86) \ Assemblées de référence \ Microsoft \ MSBuild \ v14.0 \ Microsoft.Build.dll –
Je ne suis pas sûr que ce soit vraiment obsolète? Notez que c'est pour modifier les * projets *, la question à laquelle vous faites référence concerne les * solutions *. Bien que pour votre cas, vous avez probablement besoin des deux. – stijn