Ecco un aggiornamento dello script esistente che funziona su soluzioni molto grandi.
Apre ogni file, lo formatta, quindi salva e chiude il file anziché lasciarlo aperto. Salta anche ".designer". file, poiché questi dovrebbero generalmente essere lasciati da soli.
Questo funziona in Visual Studio 2012 e 2013. È possibile copiarlo e incollarlo direttamente nella console di Gestione pacchetti.
essere avvertiti: incollare questo codice nella vostra console sarà immediatamente aperto e formattare ogni file C# nella vostra intera soluzione, salvare ogni file modificato senza chiedere. Potrebbe essere una buona idea per primo ramo ...
function FormatItems($projectItems) {
$projectItems |
% {
# Write-Host " Examining item: $($_.Name)";
if ($_.Name -and $_.Name.ToLower().EndsWith(".cs") `
-and (-not $_.Name.ToLower().Contains(".designer."))) {
$win = $_.Open('{7651A701-06E5-11D1-8EBD-00A0C90F26EA}');
$win.Activate();
$dte.ExecuteCommand('Edit.FormatDocument');
if (!$_.Saved) {
Write-Host " Saving modified file: $($_.Name)";
$dte.ExecuteCommand('File.SaveSelectedItems');
}
$dte.ExecuteCommand('Window.CloseDocumentWindow');
}
if ($_.ProjectItems -and ($_.ProjectItems.Count -gt 0)) {
# Write-Host " Opening sub-items of $($_.Name)";
FormatItems($_.ProjectItems);
}
};
}
$dte.Solution.Projects | % {
Write-Host "-- Project: $($_.Name)";
FormatItems($_.ProjectItems)
}
;
Ho postato questa domanda per documentare la soluzione che ho trovato. Ma forse ci sono altre buone idee là fuori? –
puoi contrassegnare la tua risposta come corretta? –