Created
February 12, 2021 20:04
-
-
Save Juansero29/4da581c88cfe776b5d70a4b06b5d258e to your computer and use it in GitHub Desktop.
DELETE BIN / OBJ SCRIPT
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Consignes d'utilisation de ce script : | |
# | |
# - Il faut lancer ce script dans un répertoire qui contient à la racine une solution Visual Studio (.sln) | |
# | |
# - Il est préférable que Visual Studio soit fermé pendant que le script se éxécute | |
# | |
# - Il est préférable que l'on aie fait un "Get Latest" des fichiers concernées par cette | |
# solution avant de lancer le script | |
# | |
# - Il faut s'assurer que toutes les variables d'environnement systèmes nécessaires soient | |
# présentes pour pouvoir éxécuter les commandes. À savoir : | |
# - Team Explorer | |
# (C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer) | |
# | |
# - NuGet | |
# (.exe à télécharger et mettre, par exemple, dans "C:\path\nuget.exe". Télécharger ici : https://www.nuget.org/downloads (la version stable recommandée)) | |
# | |
# - MSBuild [Facultatif, pas utilisé car ligne commentée] | |
# (C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\) | |
# | |
# Le script peut résoudre des problèmes avec des solutions Xamarin et Uno, notamment les erreurs | |
# À la compilation liées au 'Linker' ou aux fichiers '.target'. | |
$folderPath = '.\' | |
$value = $false | |
#$tfPath = "$/TFSProject/Main" | |
# On parcourt tous les fichiers, et on force le drapeau "IsReadOnly" à faux | |
"Setting ReadOnly property to false" | |
Get-ChildItem -Path $folderPath -Include bin,obj -Recurse | ForEach-Object ($_) { | |
$item = Get-Item -Path $_.FullName | |
if($item -isnot [System.IO.DirectoryInfo]) | |
{ | |
# Message d'information | |
#"Setting " + $item.Name + " ReadOnly property to false" | |
# On set la propriété lecture seule à faux a fin de pouvoir effacer les fichiers qu'on veut | |
$item.IsReadOnly = $value | |
} | |
} | |
# On re-parcourt tous les fichiers, on inclut seulement ceux qui sont nommées "bin" ou "obj", on efface tous ces items (dossiers) de façon récursive | |
Get-ChildItem -Path $folderPath -Include bin,obj -Recurse | ForEach-Object ($_) { | |
if(!$_.FullName.Contains("References\bin")) | |
{ | |
Remove-Item $_.FullName -Force -Recurse | |
$_.FullName + " deleted" | |
} | |
} | |
# On parcourt le répertoire où le script a été lancé, et pour chaque fichier ".sln" trouvé, on fait la suite d'actions suivantes... | |
Get-ChildItem -Path $folderPath | Where-Object { $_.Extension -eq ".sln"} | ForEach-Object ($_) { | |
# Message d'information | |
"Getting Latest for " + $_.FullName | |
# Get Latest / Pull pour corriger des éventuels fichiers qui devaient pas étre supprimés des bin/obj | |
#tf.exe get $tfPath /recursive | |
git pull | |
# Message d'information | |
"MSBuild Restore" | |
# On fait un restore MsBuild pour restaurer les paquets énumérés dans le fichier de projet (voir PackageReference) et à partir de MSBuild 16.5+, les projets utilisant packages.config. | |
# Cette commande n'est disponible que dans NuGet 4.x+ et MSBuild 15.1+, qui sont inclus dans Visual Studio 2017 et les versions ultérieures. À partir de MSBuild 16.5+, cette commande peut également restaurer les projets basés sur packages.config lorsqu'elle est exécutée avec -p:RestorePackagesConfig=true | |
MsBuild -t:restore | |
# Message d'information | |
"Nuget Restoring " + $_.FullName | |
# On restaure les paquets nuget de la solution pour que tout soit propre quand on réouvre la solution | |
nuget restore $_.FullName; | |
# Message d'information | |
#"Building " + $_.FullName | |
# On build la solution (pas obligatoire) | |
# MsBuild $_.FullName -p:Configuration=Debug | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment