web-dev-qa-db-fra.com

Comment renommer un dossier de projet à partir de Visual Studio?

Ma solution actuelle pour renommer le dossier du projet est la suivante:

  • Supprimez le projet de la solution.
  • Renommez le dossier en dehors de Visual Studio.
  • Rajoutez le projet à la solution.

Y a-t-il une meilleure façon?

578
andersjanmyr

Utilisateurs TFS: Si vous utilisez un contrôle de code source qui vous oblige à l'avertir avant de renommer vos fichiers/dossiers, examinez cette réponse à la place qui couvre les étapes supplémentaires requises.


Pour renommer le dossier d'un projet , le fichier (.*proj) et nom affiché dans Visual Studio:

  • Fermez la solution.
  • Renommez le ou les dossiers en dehors de Visual Studio. (Renommez dans TFS si vous utilisez le contrôle de source)
  • Ouvrez la solution en ignorant les avertissements (répondez "non" si on vous demande de charger un projet à partir du contrôle de code source).
  • Parcourez tous les projets non disponibles et ...
    • Ouvrez la fenêtre Propriétés du projet (mettez le projet en surbrillance et appuyez sur Alt+Enter ou F4ou cliquez avec le bouton droit de la souris sur> propriétés).
    • Définissez la propriété ' File Path ' sur le nouvel emplacement.
      • Si la propriété n'est pas modifiable (comme dans VS2012), ouvrez le fichier .sln directement dans un autre éditeur, tel que Notepad ++, et mettez-y à jour les chemins. (Vous devrez peut-être extraire d'abord la solution dans TFS, etc.)
    • Rechargez le projet - cliquez avec le bouton droit de la souris sur> recharger le projet.
    • Modifiez le nom d'affichage du projet en le mettant en surbrillance et en appuyant sur F2ou faites un clic droit> renommer .

Remarque: Les autres solutions suggérées impliquant la suppression puis l'ajout de nouveau du projet à la solution briseront les références du projet.

Si vous suivez ces étapes, vous pouvez également envisager de renommer les éléments suivants afin qu'ils correspondent:

  1. Assemblée
  2. Espace de noms par défaut/racine
  3. Espace de noms des fichiers existants (utilisez les outils de refactorisation de Visual Studio ou de l'outil d'espaces de noms incohérents de ReSharper)

Pensez également à modifier les valeurs des éléments suivants attributs d’assemblage :

  1. AssemblyProductAttributename__
  2. AssemblyDescriptionAttributename__
  3. AssemblyTitleAttributename__
697
andersjanmyr

Il existe un autre moyen de procéder, en utilisant les fichiers * .sol, * csproj.

  1. ouvrez votre fichier de solution 
  2. rechercher le * .csproj que vous souhaitez modifier
  3. ce sera comme ça (par rapport au fichier * .sol): 

    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"

  4. et remplacez simplement la première partie par le nouveau répertoire, par exemple:

    Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj

  5. bien sûr, n'oubliez pas de déplacer l'ensemble du projet dans ce répertoire

S'amuser.

82
rabashani

Ceci est simple dans VS 2015 (fonctionne éventuellement dans les versions plus anciennes)

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Main solution > Rename.
  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur project (under solution) > Rename.
  3. Dans l'Explorateur de solutions, double-cliquez ou faites un clic droit sur Properties > dans l'onglet Application, renommez Assembly name et Default namespace afin qu'ils correspondent.
  4. Si vous souhaitez également renommer l'espace de noms, ouvrez l'un de vos fichiers de classe. Cliquez avec le bouton droit sur le namespace > Rename.... Ceci devrait rechercher et remplacer toutes les références à votre espace de noms tout au long du projet.
  5. Fermez le projet> renommez le project folder.
  6. Editez le fichier .sln dans le bloc-notes, changez le chemin en cjproj. c'est-à-dire fu\bar.csproj --> bar\bar.csproj
67
wired00

Homme, ai-je eu du mal avec ça. Malheureusement, il n'y a pas de solution en un clic dans Visual Studio, mais si vous exécutez Visual Studio 2012 et que votre projet est sous contrôle de source avec Team Foundation Server , voici comment je l'ai fait fonctionner , tout en gardant l’historique des sources:

(Assurez-vous de lire le commentaire de @ mjv ci-dessous, car il note que vous pouvez ignorer les étapes 5 à 10)

  1. Assurez-vous que vous avez bien archivé toutes les modifications afin de ne pas avoir de modifications en attente.
  2. Supprimez le projet de la solution en cliquant avec le bouton droit de la souris et en sélectionnant Supprimer.
  3. Désormais, dans l'Explorateur Windows, renommez le dossier du projet.
  4. Revenez dans Visual Studio et, dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris sur la solution et choisissez Ajouter -> Projet existant. Sélectionnez le fichier de projet pour le projet que vous avez supprimé à l'étape 2, qui devrait se trouver dans le dossier renommé.
  5. Le projet est maintenant de retour dans la solution, mais il ne semble pas qu'il ait été ajouté au contrôle de source. Pour résoudre ce problème, ouvrez l'Explorateur de contrôle de source.
  6. Recherchez le dossier de projet dans Source Control Explorer, qui correspond au dossier de projet sur votre disque que vous avez renommé à l'étape 3.
  7. Renommez le dossier dans l'Explorateur de contrôle de source afin qu'il porte le même nom que le dossier de projet sur le disque.
  8. Examinez maintenant vos modifications en attente. Vous devez modifier le fichier de solution et renommer le dossier du projet.
  9. Faites une reconstruction et assurez-vous que tout est compilé correctement. Si vous aviez des références inter-projets au projet que vous avez renommé, vous devez les ajouter à nouveau aux projets individuels qui l'ont référencé.
  10. Vous devriez être tous ensemble maintenant. Allez tout vérifier.

Le guide ci-dessus a fonctionné pour moi. Si cela ne fonctionne pas, essayez de supprimer complètement votre solution locale, puis supprimez le mappage de dossiers dans votre espace de travail. Redémarrez Visual Studio au cas où. Assurez-vous que vous avez bien supprimé toute la solution de votre ordinateur. Lisez maintenant le mappage de la solution sur votre espace de travail et obtenez la dernière version. Maintenant, essayez les étapes ci-dessus. La même chose s'applique si quelque chose ne va pas en suivant les étapes ci-dessus. Supprimez simplement votre solution localement et obtenez la dernière source. Vous disposerez ainsi d'une base vierge pour travailler.

Si vous rencontrez toujours des problèmes, assurez-vous de ne rien avoir changé manuellement dans le fichier de solution ou d'essayer d'autres «astuces» avant d'essayer les étapes ci-dessus. Si vous avez modifié quelque chose et que vous l'avez archivé, vous voudrez peut-être envisager de revenir en arrière juste avant de commencer à modifier le changement de nom du projet.

Bien entendu, vous souhaiterez également renommer le projet lui-même dans l'Explorateur de solutions. Vous pouvez le faire avant les étapes ci-dessus, mais dans ce cas, assurez-vous de bien enregistrer cette modification avant d'appliquer les étapes ci-dessus. Vous pouvez également le faire ultérieurement, mais assurez-vous de suivre d'abord toutes les étapes ci-dessus et archivez vos modifications avant d'essayer de renommer le nom du projet dans l'Explorateur de solutions. Je ne recommande pas d'essayer de mélanger les étapes ci-dessus avec un renommage du nom du projet dans l'Explorateur de solutions. Cela fonctionnera peut-être bien, mais je recommanderais de le faire dans 2 changesets distincts.

48
René

Actuellement non. En fait, vous pouvez cliquer sur le nœud de projet brisé et dans le volet des propriétés, rechercher la propriété 'Chemin', puis cliquer sur la petite icône de navigation et sélectionner le nouveau chemin.

Voila :)

31
mortenbpost

La solution la plus simple est la suivante:

  1. Cliquez avec le bouton droit sur le projet et renommez-le.
  2. (facultatif) Ouvrez les paramètres de la propriété du projet et modifiez le nom de l’ensemble (et éventuellement l’espace de noms par défaut) pour utiliser le nouveau nom du projet.
  3. (facultatif) Sélectionnez le nom de l'espace de noms dans un fichier source, cliquez avec le bouton droit de la souris et sélectionnez Refactor\Rename pour renommer globalement l'espace de noms en le nouveau nom du projet.
  4. (facultatif) Ouvrez le fichier AssemblyInfo.cs et modifiez le nom de l'assembly afin qu'il corresponde. 
  5. Enregistrez et fermez la solution.
  6. À l'aide de l'Explorateur Windows, renommez le dossier du projet avec le nouveau nom.
  7. Ouvrez le fichier SLN dans un éditeur de texte, recherchez la référence unique au chemin du projet et changez-le pour utiliser le nouveau nom de dossier.

Il y a 4 étapes nécessaires mais 7 recommandées. À la fin de la journée, le projet est complètement renommé. Techniquement, le nom du dossier du projet ne doit pas nécessairement correspondre au projet lui-même. Cette étape est donc facultative, mais elle peut prêter à confusion si elle ne correspond pas. Idem pour les noms d'assembly et d'espace de noms.

25
Md. Shafiqur Rahman

Dans la réponse d'andersjanmyr, il est plus facile de renommer le projet en premier.

  1. Renommer le projet.
  2. Fermez la solution (enregistrez-la).
  3. Renommez les dossiers en dehors de Visual Studio.
  4. Ouvrez la solution en ignorant les avertissements.
  5. Parcourez tous les projets non disponibles et définissez la propriété 'Chemin du fichier' sur le nouvel emplacement de votre fichier de projet, c’est-à-dire someproject.csproj.
  6. Rechargez le projet.

En outre, une fois ces étapes effectuées, vous voudrez peut-être renommer les autres références en ancien nom de projet.

Dans les propriétés du projet, mettez à jour le nom de l'assembly et l'espace de nom par défaut . Cela mettra à jour les éléments suivants dans le fichier de projet ...

<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>

... et supprimera l'erreur "L'espace de noms ne correspond pas à l'emplacement du fichier, mais doit être: 'SomeProjectName'"

Renommez votre espace de noms racine (si vous avez resharper, cliquez avec le bouton droit de la souris sur l'espace de noms et sélectionnez Refactor -> Renommer).

Modifier toutes les occurrences de votre ancien nom de projet dans AssemblyInfo.cs

8
CRice

Pour VS2017, vous pouvez utiliser mon extension Visual Studio.

Télécharger

Il renommera le projet en:

  • dossier d'emplacement du projet
  • fichier de solution
  • référence dans d'autres projets
  • Nom de l'assemblée, information
  • espace de noms par défaut
8
Kuanysh

Je devais le faire moi-même (avec VS2010). Comme certaines personnes ont répondu, l'étape la plus simple semble être:

  1. Fermez le projet VS.
  2. Ouvrez le fichier .sln et renommez le préfixe du répertoire de projet pour chacune des occurrences .csproj.
  3. Enregistrez le fichier .sln
  4. Renommez le répertoire du dossier de projet réel sur votre disque dur pour qu'il corresponde aux modifications apportées au fichier .sln.
  5. Ouvrez le .sln (dans VS) et reconstruisez
6
John Im

Solution éprouvée pour l'extension Visual Studio pour Data Tools pour la Business Intelligence (SSDT-BI 2013):

  1. Déplacez le dossier du projet vers son nouvel emplacement (ne renommez rien encore)
  2. Dans l'Explorateur de solutions, renommez le projet/la solution.
  3. Fermez (et enregistrez) le projet récemment renommé.
  4. Renommez le dossier et le fichier .sln du projet.
  5. Utilisez un éditeur de texte et ouvrez le fichier de solution de projet récemment renommé (.sln) (j'ai utilisé Notepad ++).
  6. Dans la ligne numéro 6, vous verrez: "Projet {fdjfksdjk4387! ...} =" OLDPROJECT "," OLDFOLDER\OLDPROJECT.rptproj ". Renommez tout avec les nouveaux noms utilisés à l'étape 4. (c'est-à-dire ... =" NEWPROJECT "," NEWFOLDER\NEWPROJECT.rptproj "...)
  7. C'est tout!

Testé à 100% et a parfaitement travaillé sur mon cas.

REMARQUE: Impossible de confirmer si cela fonctionne sous différents modèles de projet et/ou versions Visual Studio. Comme toujours, faites tout sauvegarder à l’avance.

4
user3285866

Voir le point 3 de l'article lié.

  1. Fermez la solution et l'IDE.
  2. Dans l'explorateur: remplacez le nom du répertoire par le nouveau nom.
  3. Dans l'explorateur: Ouvrez le fichier .sln avec un éditeur de texte.
  4. Remplacez le nom du répertoire par le nouveau nom et enregistrez.
  5. Redémarrez IDE et ouvrez la solution à partir du menu Fichier, Fichiers récents si elle ne démarre pas automatiquement.
  6. Cliquez sur le dossier Projet de l'Explorateur de solutions et vérifiez la propriété du chemin d'accès dans les propriétés en bas. Il fera maintenant référence au nouveau dossier de projet.

Cela a fonctionné pour moi.

4
Jim Lewis

Bien que cette question ait déjà été résolue, je souhaitais partager mon approche pour résoudre ce problème. J'ai souvent eu le même problème de renommer un projet en VS et d’éditer le nom du dossier, le nom du projet et le fichier .sln afin d’y parvenir. Je viens d'écrire un script VBScript qui accomplit tout cela. Vous devez faire attention aux chaînes que vous choisissez de remplacer.

EDIT: Il vous suffit de placer le fichier .vbs dans le même répertoire que le fichier .sln de la solution.

'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
2
Valkyrias

J'ai écrit un petit outil qui automatise toutes ces étapes. Prend également en charge Subversion pour le moment. 

Vous trouverez des informations sur les versions actuelles ici Visual Studio Project Renamer Infos

Les dernières versions peuvent maintenant être téléchargées à partir de Page de téléchargement de Visual Studio Project Renamer

Les commentaires sont très appréciés.

2
Razer

Ce qui a fonctionné pour moi en 2017:

  • Fermer la solution VS
  • Répertoire renommé des projets en solution .
    • (Pousser le changement dans le contrôle de source - git dans mon cas)
  • éditer le fichier sln dans l'éditeur de texte (hors VS2017) en changeant le nom du répertoire.
  • Solution rouverte dans VS

Il disait quelque chose comme " ré-ajoutant projet ", j'ai tout reconstruit et tout était bon pour aller.

2
Charles Plager

La solution de @ andersjanmyr: vous pouvez appuyer sur Alt + Entrée pour afficher la page de propriétés du projet indisponible et y définir la propriété "Chemin du fichier" puisqu'il n'est pas disponible dans le menu contextuel clic-droit du projet non disponible (sous VS2008).

2
Ujjwal Singh

REMARQUE: ce correctif concerne Visual Studio 2008, mais devrait fonctionner ici.

  1. À l'aide de l'Explorateur Windows, renommez les deux dossiers de solution (le dossier parent et le dossier enfant) en nouveau nom de solution.
  2. Supprimez le fichier .sln situé dans le dossier parent.
  3. Dans Visual Studio, sélectionnez Fichier | Ouvrir un projet.
  4. Explorez le nouveau dossier que vous venez de renommer et ouvrez le fichier .csproj (situé dans le dossier enfant).
  5. Cliquez avec le bouton droit sur le nom du projet et renommez-le comme vous le souhaitez. (Doit avoir le même nom que le dossier de l'étape 1.)
  6. Sélectionnez Fichier | Fermer la solution. Une boîte de dialogue vous demandera si vous souhaitez enregistrer les modifications dans le fichier .sln. Cliquez sur Oui.
  7. Dans la boîte de dialogue Enregistrer le fichier sous, pointez sur le dossier PARENT récemment renommé et cliquez sur enregistrer . (REMARQUE: assurez-vous que le fichier .sln porte le même nom que le dossier. Non requis, mais maintient la cohérence.) 

TERMINÉ.

1
Robo A GoGo

Nous avons récemment mis en ligne une version bêta d'une extension VS gratuite qui fait ce travail pour vous . Consultez VS Gallery: Gallery Download

1
user3652868
  1. Renommer le projet en solution et le dossier du projet

  2. Supprimer le projet de la solution

  3. Ajouter un projet existant à la solution (votre projet renommé)

Ça marche pour moi. TFS suivra également le nouveau projet.

1
Vlad

Bien je l'ai fait mon chemin

  • Fermer Visual Studio 2012
  • Renommez votre sous-répertoire en nom préféré sous .sln
  • Supprimer le fichier * .suo
  • Ouvrez à nouveau la solution, corrigez les propriétés du ou des projets chargés afin de respecter le nouveau nom du sous-répertoire.
1
ageroh

Lorsque vous utilisez TFS, l'étape 2 consiste à renommer le dossier dans le contrôle de source, puis à obtenir le dernier avant de rouvrir la solution.

1
Amy Patterson

Pour ceux qui utilisent Visual Studio + git et qui souhaitent conserver l'historique des fichiers (travaux renommant à la fois les projets et/ou les solutions):

1) Fermez Visual Studio

2) Dans le fichier .gitignore, dupliquez tous les chemins ignorés du projet que vous souhaitez renommer avec des versions renommées de ces chemins.

3) Utilisez la commande de déplacement git comme ceci:

git mv <old_folder_name> <new_folder_name>

Voir la documentation pour des options supplémentaires: https://git-scm.com/docs/git-mv

4) Dans votre fichier .sln: Recherchez la ligne définissant votre projet et modifiez le nom du dossier dans chemin. La ligne devrait ressembler à quelque chose comme:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"

5) Ouvrez Visual Studio, faites un clic droit sur le projet -> Renommer

6) Renommez ensuite les espaces de noms .. J'ai lu que le resharper a quelques options pour cela. Mais la simple recherche/remplacement a fait le travail pour moi.

7) Supprimer les anciens chemins .gitignore

1
ivke

Ouvrez .sln dans un fichier texte et remplacez votre nouveau nom de dossier par la ligne suivante Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", "{ 021CC6B0-8CFB-4194-A103-C19AF869D965} "

0
Hasala Senevirathne

Après avoir modifié le nom du dossier, ouvrez le fichier .sln dans le bloc-notes et changez le chemin d'accès.

0
LastTribunal

J'ai dû faire ça plusieurs fois. Il est vraiment utile de pouvoir réorienter un projet existant, mais aussi de renommer du texte dans des espaces de noms, des fichiers et des dossiers. L'utilisation d'une recherche et d'un remplacement récursifs à partir du dossier racine signifie que le renom ne rompt pas les liens vers les projets dans les fichiers de solution et les références de projet.

À cette fin, j'ai créé un projet dans ce but. L'application s'efforce également d'ignorer les dossiers de contrôle de version tels que .git, .svn et le fichier de paramètres .vs. Plus d'infos dans le fichier README.

https://github.com/garethrbrown/vs-project-rename

Example

0
gb2d

Le moyen le plus simple consiste à accéder à la propriété de la fenêtre, changer le nom des espaces de noms par défaut, puis renommer. 

0
hjbjh

J'ai fait ce qui suit:

  1. Renommez le projet depuis vs2013. (facultatif/pas nécessaire)

  2. Exportez le projet en tant que modèle. 

  3. Fermez la solution.

  4. Rouvrir la solution 

  5. Créez un projet à partir du modèle enregistré et utilisez le nom de votre choix.

  6. Supprimer de la solution Explorer le projet précédent. 

À ce stade, j'ai essayé de compiler la nouvelle solution et, pour ce faire, je devais copier manuellement certaines ressources et en-têtes dans le nouveau dossier de projet à partir de l'ancien dossier de projet. Faites-le jusqu'à ce qu'il compile sans erreur. Maintenant, ce nouveau projet a sauvegardé le fichier ".exe" dans le dossier précédent. * 

Alors ->

  1. Accédez à Windows Explorer et copiez manuellement le fichier de solution de l'ancien dossier de projet dans le nouveau dossier de projet.

  2. Fermez la solution et ouvrez-la à partir du nouveau projet.

  3. Changez la configuration en (x64) si nécessaire.

  4. Supprimez le dossier du projet portant l'ancien nom du dossier de la solution.

0
user5141040

Ou simplement,

Copiez tous les codes, puis ouvrez un nouveau projet portant le nom souhaité et collez le code. Exécutez le débogage, puis supprimez le projet précédent. Terminé!

Cela a fonctionné pour moi!

0
user10074310

J'utilise VS 2013 et TFS 2013.

Je l'ai fait comme ça:

  1. Ouvrez Visual Studio sans ouvrir la solution elle-même et utilisez Source Control Explorer pour rechercher et renommer les dossiers de projets.
  2. Double-cliquez sur le fichier de solution dans l'Explorateur de contrôles source pour ouvrir une solution.
  3. Vous obtenez une question: "Des projets ont récemment été ajoutés à cette solution. Souhaitez-vous les obtenir à partir du contrôle de source?" Et vous avez choisi Oui.
  4. Maintenant, la structure du dossier et du projet sont là, mais maintenant les fichiers, donc maintenant vous obtenez la dernière version du contrôle de source
  5. Essayez de construire et de valider des modifications.
0
Muris

Il existe une approche plus simple qui a été testée dans VS 2013 Update 1 et applicable aux projets connectés à TFS:

  • Ouvrez VS mais laissez la solution fermée
  • Ouvrez Source Explorer et renommez le dossier souhaité (la solution sera fermée pour vous si vous ne l'avez pas déjà fermé en premier)
  • Cliquez avec le bouton droit sur la solution (dans Source Explorer également) et sélectionnez l'archivage.
  • Ouvrez la solution, vous apprendrez que de nouveaux projets sont ajoutés et acceptez les modifications.
  • Supprimez le projet de la solution et ajoutez-le à nouveau, puis enregistrez-le.
  • Vérifier que les références internes sont correctes
0
Mohamed Emad

1-Renommez le projet en dehors de VS . 2-éditez votre nom de projet.sln avec un éditeur de texte, renommez le chemin du nouveau chemin

0
user1062770

Des problèmes similaires se posent lorsqu'un nouveau projet doit être créé et que vous souhaitez un nom de dossier de projet différent du nom du projet.

Lorsque vous créez un nouveau projet, il est stocké dans

./path/to/pro/ject/YourProject/YourProject.**proj

Supposons que vous souhaitiez l'avoir directement dans le dossier ject:

./path/to/pro/ject/YourProject.**proj

Ma solution consiste à créer le projet avec le nom de la dernière partie du chemin, de manière à ne pas créer de répertoire supplémentaire:

./path/to/pro/ject/ject.**proj

Lorsque vous renommez maintenant le projet à partir de Visual Studio, vous atteignez votre objectif sans avoir à quitter VS:

./path/to/pro/ject/YourProject.**proj

L'inconvénient de cette approche est que vous devez également ajuster l'espace de nom par défaut et le nom du fichier binaire de sortie, ainsi que la mise à jour des espaces de nom dans tous les fichiers inclus dans le modèle de projet.

0
Etan