La mia attuale soluzione per rinominare la cartella del progetto è:
- Rimuovere il progetto dalla soluzione.
- Rinomina la cartella all'esterno di Visual Studio.
- Aggiungere nuovamente il progetto alla soluzione.
Esiste un modo migliore?
La mia attuale soluzione per rinominare la cartella del progetto è:
Esiste un modo migliore?
Risposte:
Utenti TFS: se si utilizza il controllo del codice sorgente che richiede di avvisarlo prima di rinominare i file / le cartelle, guardare invece questa risposta che copre i passaggi aggiuntivi richiesti.
Per rinominare la cartella , il file ( .*proj
) e il nome visualizzato di un progetto in Visual Studio:
.sln
file direttamente in un altro editor come Notepad ++ e aggiorna i percorsi lì. (Potrebbe essere necessario verificare prima la soluzione in TFS, ecc.)Nota: altre soluzioni suggerite che comportano la rimozione e la successiva aggiunta del progetto alla soluzione interrompono i riferimenti del progetto.
Se esegui questi passaggi, potresti anche considerare di rinominare quanto segue in modo che corrisponda:
Considerare anche di modificare i valori dei seguenti attributi di assembly :
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
C'è un altro modo per farlo, usando i file * .sol, * csproj.
Sarà così (relativamente al file * .sol):
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
E basta cambiare la prima parte nella nuova directory per esempio:
Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
Naturalmente, non dimenticare di spostare l'intero progetto in quella directory.
Questo è semplice in Visual Studio 2015 (forse funziona nelle versioni precedenti)
.sln
file in Blocco note e cambia il percorso in csproj, ovvero fu\bar.csproj
→ bar\bar.csproj
.Amico, ho lottato con questo. Sfortunatamente non esiste una soluzione con un clic in Visual Studio, ma se stai eseguendo Visual Studio 2012 e il tuo progetto è sotto il controllo del codice sorgente con Team Foundation Server , ecco come l'ho fatto funzionare, pur mantenendo la cronologia dei sorgenti:
(Assicurati di leggere il commento di @ mjv di seguito, poiché nota che puoi saltare i passaggi 5-10)
La guida sopra ha funzionato per me. Se non funziona per te, prova a eliminare completamente la soluzione locale e rimuovi il mapping delle cartelle nell'area di lavoro. Riavvia Visual Studio per ogni evenienza. Assicurati di aver effettivamente eliminato l'intera soluzione dal tuo computer. Ora ho letto la mappatura della soluzione sul tuo spazio di lavoro e ottieni l'ultima versione. Ora prova i passaggi precedenti. Lo stesso vale se qualcosa va storto seguendo i passaggi precedenti. Basta eliminare la soluzione localmente e ottenere la fonte più recente e avrai una lavagna pulita con cui lavorare.
Se i problemi persistono, assicurati di non aver modificato manualmente nulla nel file della soluzione o di provare altri "trucchi" prima di provare i passaggi precedenti. Se hai modificato qualcosa e archiviato, potresti prendere in considerazione l'idea di eseguire un rollback al punto appena prima di iniziare a fare confusione con la ridenominazione del progetto.
Naturalmente, vorrai anche rinominare il progetto stesso, in Esplora soluzioni. Puoi farlo prima dei passaggi precedenti, ma in tal caso, assicurati di effettuare il check-in in tale modifica prima di applicare i passaggi precedenti. Puoi anche farlo in seguito, ma assicurati di seguire prima tutti i passaggi precedenti e di verificare le modifiche prima di provare a rinominare il nome del progetto in Esplora soluzioni. Non consiglio di provare a mescolare i passaggi precedenti con una ridenominazione del nome del progetto in Esplora soluzioni. Tuttavia potrebbe funzionare, ma lo consiglierei di farlo in 2 changeset separati.
VS2012
! Si noti che è possibile evitare i passaggi da 5 a 10 (ovvero dover ripristinare le cartelle rinominate nel controllo del codice sorgente) se, invece, si chiude la soluzione e si rinomina le cartelle all'interno VS' Source Control Explorer
anziché Windows Explorer
.
Folder already exists
. Quindi ho dovuto rinominare nuovamente la cartella, WE
quindi cambiarla SCE
, quindi copiare i file in quella cartella, prima che funzionasse. Quindi segui il commento da mjv sopra. Inoltre non ho pensato di dover cambiare i nomi dei file di progetto (non solo in VS), cosa che ho fatto come ripensamento, facendomi ripetere alcuni di questi passaggi.
Attualmente no. Bene, in realtà puoi fare clic sul nodo del progetto non funzionante e nel riquadro delle proprietà cercare la proprietà "Percorso", fare clic sulla piccola icona Sfoglia e selezionare il nuovo percorso.
Ecco :)
La soluzione più semplice è la seguente:
Sono necessari quattro passaggi, ma sette sono consigliati. Alla fine della giornata il progetto è stato rinominato completamente. Tecnicamente, il nome della cartella per il progetto non deve corrispondere al progetto stesso, quindi anche quel passaggio è facoltativo, ma può essere fonte di confusione se non corrispondono. Lo stesso per i nomi di assembly e namespace.
Nella risposta di Andersjanmyr è più facile rinominare prima il progetto.
Inoltre, dopo aver eseguito questi passaggi, potresti voler rinominare altri riferimenti al vecchio nome del tuo progetto.
Nelle proprietà del progetto, aggiorna il nome dell'assieme e lo spazio dei nomi predefinito.
Ciò aggiornerà quanto segue nel file di progetto ...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... e eliminerà l'errore "Lo spazio dei nomi non corrisponde alla posizione del file, dovrebbe essere: 'SomeProjectName'"
Rinomina il tuo spazio dei nomi di root (se hai ReSharper fai clic con il pulsante destro del mouse su Namespace e vai a Refactor -> Rinomina).
Modificare tutte le occorrenze del vecchio nome del progetto in AssemblyInfo.cs .
Per Visual Studio 2017 è possibile utilizzare l'estensione di Visual Studio:
Rinominerà il progetto in:
[assembly: InternalsVisibleTo("MyTests")]
. Quando ho rinominato MyTests
, non ha rinominato quel riferimento. Ancora una volta, non penso che questo rientri nelle tue competenze ed è facile da risolvere manualmente.
Ho dovuto farlo da solo (usando Visual Studio 2010). Come alcune persone hanno risposto, il passo più semplice sembra essere:
Per coloro che utilizzano Visual Studio + Git e desiderano conservare la cronologia dei file (funziona rinominando sia i progetti che le soluzioni):
Chiudi Visual Studio
Nel file .gitignore, duplicare tutti i percorsi ignorati del progetto che si desidera rinominare con le versioni rinominate di tali percorsi.
Usa il comando Git move in questo modo:
git mv <old_folder_name> <new_folder_name>
Consultare la documentazione per ulteriori opzioni: https://git-scm.com/docs/git-mv
Nel tuo file .sln: trova la riga che definisce il tuo progetto e modifica il nome della cartella nel percorso. La linea dovrebbe assomigliare a:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
Apri Visual Studio e fai clic con il pulsante destro del mouse sul progetto → Rinomina
Successivamente, rinominare gli spazi dei nomi.
Ho letto che ReSharper ha alcune opzioni per questo. Ma il semplice trovare / sostituire ha fatto il lavoro per me.
Rimuovi i vecchi percorsi .gitignore.
Vedi l'articolo 3 nell'articolo collegato .
Ha funzionato per me.
Cosa ha funzionato per me in Visual Studio 2017:
Diceva qualcosa come " aggiungere nuovamente il progetto ". Ho ricostruito tutto ed è andato tutto bene.
Dependencies
>> Add reference
>> Seleziona il nuovo progetto )
Ho dovuto farlo molte volte. È davvero utile essere in grado di riutilizzare un progetto esistente, ma essere in grado di rinominare il testo in spazi dei nomi, file e cartelle (compresi i nomi di file / directory).
L'uso di una ricerca e sostituzione ricorsiva a partire dalla cartella principale significa che la ridenominazione non interrompe i collegamenti ai progetti nei file della soluzione e nei riferimenti ai progetti.
A tal fine, ho creato un progetto per fare proprio questo. L'applicazione fa anche uno sforzo per ignorare le cartelle di controllo versione come .git, .svn e il file delle impostazioni .vs. Maggiori informazioni sono nel README.
Una soluzione comprovata per l'estensione di Visual Studio per Data Tools for Business Intelligence (SSDT-BI 2013):
È stato testato al 100% e ha funzionato perfettamente nel mio caso.
NOTA: non posso confermare se funziona con diversi modelli di progetto e altre versioni di Visual Studio. Come sempre, esegui il backup di tutto in anticipo.
Ho scritto un piccolo strumento che automatizza tutti questi passaggi. Supporta anche Subversion per ora.
Le informazioni sulle versioni correnti sono disponibili nelle informazioni su Renamer Project di Visual Studio .
Le ultime versioni possono ora essere scaricate dalla pagina di download di Renamer del progetto Visual Studio .
Il feedback è molto apprezzato.
Ho avuto spesso lo stesso problema di rinominare un progetto in Visual Studio e di modificare il nome della cartella, il nome del progetto e il file .sln per farlo. Ho appena scritto uno script VBScript che realizza tutto ciò. Devi stare attento con le stringhe che scegli per la sostituzione.
Devi solo mettere il file .vbs nella stessa directory del file .sln della soluzione.
' Script parameters'
Solution = "Rename_Visual_Studio_Project" '.sln'
Project = "Rename_Visual_Studio_Project" '.csproj'
NewProject = "SUCCESS"
Const ForReading = 1
Const ForWriting = 2
Set objFso = CreateObject("Scripting.FileSystemObject")
scriptDirr = objFso.GetParentFolderName(wscript.ScriptFullName)
' Rename the all project references in the .sln file'
Set objFile = objFso.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForReading)
fileText = objFile.ReadAll
newFileText = Replace(fileText, Project, NewProject)
Set objFile = objFSO.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForWriting)
objFile.WriteLine(newFileText)
objFile.Close
' Rename the .csproj file'
objFso.MoveFile scriptDirr + "\" + Project + "\" + Project + ".csproj", scriptDirr + "\" + Project + "\" + NewProject + ".csproj"
' Rename the folder of the .csproj file'
objFso.MoveFolder scriptDirr + "\" + Project, scriptDirr + "\" + NewProject
Nota : questa correzione è per Visual Studio 2008, ma dovrebbe funzionare qui.
.sln
file che si trova nella cartella principale..sln
file. ClicYes ..sln
file abbia lo stesso nome della cartella. Non è necessario, ma mantiene la coerenza.)Fatto.
Quando si utilizza TFS, il passaggio 2 consiste effettivamente nel rinominare la cartella nel controllo del codice sorgente e quindi ottenere le ultime novità prima di riaprire la soluzione.
Recentemente abbiamo caricato una versione beta di un'estensione gratuita di Visual Studio che fa queste cose per te.
Dai un'occhiata a Visual Studio Gallery: Download galleria
Apri .sln in un editor di testo e nella riga seguente cambia <FolderName> nel nuovo nome della cartella Progetto ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-A103-C19AF869D965}"
Dopo aver modificato il nome della cartella, aprire il file .sln in Blocco note e cambiare il percorso con il nuovo percorso.
Problemi simili sorgono quando si deve creare un nuovo progetto e si desidera un nome di cartella del progetto diverso dal nome del progetto.
Quando si crea un nuovo progetto, questo viene archiviato in
./path/to/pro/ject/YourProject/YourProject.**proj
Supponiamo che tu volessi averlo direttamente nella ject
cartella:
./path/to/pro/ject/YourProject.**proj
La mia soluzione per raggiungere questo obiettivo è creare il progetto con l'ultima parte del percorso come nome, in modo che non crei una directory aggiuntiva:
./path/to/pro/ject/ject.**proj
Quando rinominate ora il progetto da Visual Studio, raggiungete l'obiettivo senza dover uscire da Visual Studio:
./path/to/pro/ject/YourProject.**proj
L'aspetto negativo di questo approccio è che è necessario regolare lo spazio dei nomi predefinito e anche il nome del file binario di output e che è necessario aggiornare gli spazi dei nomi in tutti i file inclusi nel modello di progetto.
Uso Visual Studio 2013 e TFS 2013.
L'ho fatto così:
Esiste un approccio più semplice che è stato testato in Visual Studio 2013 Update 1 e applicabile ai progetti connessi a TFS:
Il modo più semplice è passare alla proprietà della finestra, cambiare il nome degli spazi dei nomi predefiniti e quindi la ridenominazione è fatta.
Ho fatto quanto segue:
<Crea un backup dell'intera cartella>
Rinomina il progetto da Visual Studio 2013 (opzionale / non necessario).
Esporta il progetto come modello.
Chiudi la soluzione
Riapri la soluzione
Crea un progetto dal modello salvato e usa il nome che ti piace.
Elimina da Esplora soluzioni il progetto precedente.
A questo punto ho provato a compilare la nuova soluzione e, per farlo, ho dovuto copiare manualmente alcune risorse e intestazioni nella nuova cartella del progetto dalla vecchia cartella del progetto. Fallo finché non viene compilato senza errori. Ora questo nuovo progetto ha salvato il file ".exe" nella cartella precedente. *
Quindi ->
Vai a Esplora risorse e copia manualmente il file della soluzione dalla vecchia cartella del progetto alla nuova cartella del progetto.
Chiudi la soluzione e apri la soluzione dall'interno del nuovo progetto.
Modificata la configurazione di nuovo in (x64) se necessario.
Elimina la cartella del progetto con il vecchio nome dalla cartella della soluzione.