Il blog di Sandro Rizzetto

Rinominare progetti e soluzioni in Visual Studio

 

Spesso è necessario fare un po' di Name-Refactoring su una solution di VS2019 (ma penso che funzioni anche con VS2017) se si sono dati ai progetti dei nomi errati o che nel tempo abbiamo deciso di cambiare.

Nel mio caso specifico dovevo migrare dei progetti da .Net Standard a .Net Core e non essendoci in VS2019 la possibilità di cambiare il tipo di Framework dalle Properties del progetto ho dovuto creare un progetto nuovo, copiare i sorgenti, cancellare il vecchio e rinominare il nuovo.

Sebbene in VS facendo F2 (o tasto destro, Rename) sia possibile cambiare il nome del progetto (e immagino e spero le dipendenze negli altri), questo non è sufficiente, né per rinominare la folder che lo contiene, né per i namespace che hanno preso il nome del progetto.

L'unica è quindi andare a fare il lavoro a manina, facilitati dal fatto che fortunatamente sono tutti file ascii editabili o cambiabili con un tool.

Ecco il workflow

  1. Da dentro Visual Studio fare un bel Clean Solution
  2. CHIUDERE VS
  3. FARE UN BACKUP DI TUTTA LA CARTELLA DELLA SOLUTION COPIANDOLA DA QUALCHE PARTE (non si sa mai!!)
  4. io per sicurezza ho cancellato tutte le subdir Debug e Release (ed eventuali altre frutto di compilazione come Publish, netcoreapp, ecc) presenti nella BIN e nella OBJ di ogni progetto della solution; in questo modo il Find File lavora solo su file non binari
  5. Il mio progetto non era ancora in qualche repository, quindi ho cancellato senza problemi la cartella hidden .vs (eventualmente se ad es. lo avete in github, fate un git clean .fdx)
  6. Per ogni progetto da cambiare, rinominare la sua Root Folder e il corrispondente file .csproj che lo contiene (se usate un altro linguaggio .vbproj, .fsproj, ecc.)
  7. Lanciare un Tool di Search e/o di Replace e cambiare in tutti i file trovati le istanze di <oldname> con <newname>
  8. Riaprire la solution con le dita incrociate :-) A me comunque è andata bene!

Nota a margine sui tool da usare. Per quanto riguarda il Search uso da anni questo programmino (Effective File Search) diventato ora freeware che non mi ha mai tradito (al contrario del Search di windows che continuo a ritenere fallato!), mentre per il Replace utilizzavo un vecchissimo BK ReplaceEM (poi rinominato Replace Text) che ha qualche feature carina ma è ormai abbandonato da anni.

Ebbene, oggi ho scoperto che Notepad++, tool che uso comunque al posto del Notepad classico, ha la fantastica opzione Find in Files... (Ctrl-Shift-F) che funziona sia da Search che da Replace e funziona benissimo. Ecco perché bisognerebbe avere più tempo per studiare meglio i tool che si usano quotidianamente!

Aggiungi Commento

Copyright © 1997-2019 Sandro Rizzetto | All Rights Reserved | Riproduzione delle fotografie vietata | Powered by me