web-dev-qa-db-fra.com

Méthode appropriée pour renommer la solution (et les répertoires) dans Visual Studio

J'ai une solution Visual Studio assez impliquée (2010, mais ce n'est pas grave) que je dois renommer.

Je souhaite renommer les dossiers pour qu'ils correspondent au nouveau nom de la solution, mais je ne parviens pas à refactoriser automatiquement les noms des dossiers. Il sera donc pénible de parcourir chaque fichier de projet.

Y a-t-il un moyen officiel de faire cela? Sinon (et beaucoup moins de préférence), existe-t-il des outils gratuits pour y parvenir?

371
David Pfeffer

Éditez manuellement le fichier .sln

Cette méthode est entièrement destinée à renommer le répertoire du projet, tel qu’il est visualisé dans l’explorateur Windows.

Cette méthode ne souffre pas des problèmes de la méthode Supprimer/ajouter un fichier projet ci-dessous (les références disparaissent), mais cela peut entraîner des problèmes si votre projet est: sous contrôle de source (voir notes ci-dessous). C'est pourquoi l'étape 2 (sauvegarde) est si importante.

  1. Fermez Visual Studio.
  2. Créez une sauvegarde de votre fichier .sln (vous pouvez toujours restaurer).
  3. Imaginez que vous souhaitez renommer le répertoire "Project1" en "Project2".
  4. Si vous n'utilisez pas le contrôle de code source, renommez le dossier de "Projet1" en "Projet2" à l'aide de l'Explorateur Windows.
  5. Si vous utilisez le contrôle de source, renommez le dossier de "Projet1" en "Projet2" à l'aide des fonctions fournies par le contrôle de source. Cela préserve l’historique du fichier. Par exemple, avec TortoiseSVN, cliquez avec le bouton droit sur le fichier, sélectionnez TortoiseSVN .. Rename.
  6. Dans le fichier .sln, modifiez toutes les occurrences de "Project1" afin qu'elles soient "Project2", à l'aide d'un éditeur de texte tel que Bloc-notes .
  7. Redémarrez Visual Studio et tout fonctionnera comme avant, mais avec le projet dans un répertoire différent.

Vous pouvez également voir renommer la solution manuellement ou message décrivant ce processus manuel .

Avantages

  • Vous pouvez faire en sorte que le répertoire de l'explorateur Windows corresponde au nom du projet dans la solution.
  • Cette méthode ne () ne supprime pas toutes les références d'autres projets dans ce fichier (un avantage par rapport à la Supprimer/ajouter un fichier de projet , voir mon autre réponse ci-dessous).

Avertissements

  • Il est important de tout sauvegarder dans un fichier .Zip avant de renommer quoi que ce soit, car cette méthode peut créer des problèmes avec le contrôle de source.
  • Si votre projet est sous contrôle de source, des problèmes peuvent survenir si vous renommez des fichiers ou des répertoires en dehors du contrôle de source (à l'aide de l'Explorateur Windows). Il est préférable de renommer le fichier en utilisant le framework de contrôle de source lui-même , si vous le pouvez, pour conserver l'historique de ce fichier (consultez le menu clic droit - il peut avoir une fonction pour renommer le fichier).

Mise à jour du 2014-11-02

ReSharper a ajouté une méthode automatisée pour obtenir le même résultat que la méthode manuelle ci-dessus. Si l'espace de nom est souligné par une ligne bleue ondulée, cliquez sur l'icône de la pyramide d'actions pour:

  • Renommez l'espace de noms pour qu'il corresponde au nom du répertoire dans l'Explorateur Windows.
  • Renommez le répertoire dans l'Explorateur Windows pour qu'il corresponde à l'espace de noms.

Dans le second cas, le dernier mot définit le nouveau nom de répertoire dans l'Explorateur Windows, par exemple. si nous modifions l’espace de noms en ViewModel2, le fichier serait déplacé dans le dossier ViewModel2.

Toutefois, cela ne mettra pas nécessairement à jour les fichiers dans le contrôle de source, vous devrez peut-être quand même utiliser la méthode manuelle.

enter image description here

Mise à jour du 2018-01-31

Testé avec Visual Studio 2008, 2010, 2012, 2013, 2015 et 2017 Mise à jour 1, 2, 3, 4, 5.

337
Contango

Voici les étapes à suivre pour renommer une solution:

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, sélectionnez Renommer et entrez un nouveau nom.
  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet et sélectionnez Propriétés. Dans l'onglet Application, modifiez le "Nom de l'assembly" et "L'espace de nommage par défaut".
  3. Dans le fichier cs principal (ou dans tout autre fichier de code), renommez la déclaration d'espace de noms pour utiliser le nouveau nom. Pour cela, cliquez avec le bouton droit de la souris sur l'espace-noms et sélectionnez Refactor> Rename, entrez un nouveau nom. Par exemple: namespace WindowsFormsApplication1
  4. Changez le AssemblyTitle et le AssemblyProduct dans Properties/AssemblyInfo.cs.

    [Assembly: AssemblyTitle("New Name Here")]
    [Assembly: AssemblyDescription("")]
    [Assembly: AssemblyConfiguration("")]
    [Assembly: AssemblyCompany("")]
    [Assembly: AssemblyProduct("New Name Here")]
    [Assembly: AssemblyCopyright("Copyright ©  2013")]
    [Assembly: AssemblyTrademark("")]
    [Assembly: AssemblyCulture("")]
    
  5. Supprimer physiquement les répertoires bin et obj.

  6. Renommez le répertoire du dossier physique du projet.

  7. Ouvrez le fichier SLN (dans le bloc-notes ou n’importe quel éditeur) et modifiez le chemin du projet.

  8. Nettoyer et reconstruire le projet.

141
Zaheer Ahmed

Les opérations de changement de nom dans visual studio ne modifient le nom de fichier, c’est-à-dire que pour un projet, * .prj et pour une solution * .sln. Vous devrez renommer les dossiers séparément à l'aide du système de fichiers, et vous devrez également supprimer et relire les projets car ils auront de nouveaux noms de répertoire. Cependant, notez que les fichiers de solution et de projet sont respectivement des fichiers texst et xml. Vous pouvez écrire votre propre programme qui les analyse et renomme les noms de dossier, les noms de fichier et corrige les fichiers projet/solution en interne.

29
AaronLS

Vous pouvez également exporter un modèle, puis créer un nouveau projet à partir du modèle exporté, en modifiant le nom à votre guise.

20
edoardo

Vous trouverez ci-dessous une méthode pas à pas pour renommer l'intégralité de votre solution dans Visual Studio 2013 .

En supposant que nous modifions un projet nommé "HelloWorld.ui" en "Section1to5.ui"

  1. Allez dans la solution Explorateur (capture d'écran ci-dessous), faites un clic droit sur le projet que vous souhaitez renommer et sélectionnez "Renommer". Entrez le nouveau nom que vous désirez.

Solution Explorer Screenshot

  1. Faites un clic droit sur le projet que vous venez de renommer, puis cliquez sur "Propriétés". Sous l'onglet Application, modifiez le "nom de l'assembly" et "l'espace de nom par défaut".

  2. Dans le fichier Program.cs principal (ou dans tout autre fichier de code que vous avez éventuellement créé), renommez la déclaration d'espace de nom pour utiliser le nouveau nom. Pour cela, cliquez avec le bouton droit de la souris sur l'espace-noms et sélectionnez Refactor> Rename, entrez un nouveau nom. Par exemple:

    espace de noms HelloWorld.ui ----> espace de noms Section1to5.ui

  3. Ensuite, développez les "Propriétés" et double-cliquez sur le fichier AssemblyInfo.cs. Vous remarquerez le fragment de code ci-dessous:

[Assembly: AssemblyTitle("HelloWorld.ui")]
[Assembly: AssemblyDescription("")]
[Assembly: AssemblyConfiguration("")]
[Assembly: AssemblyCompany("Microsoft")]
[Assembly: AssemblyProduct("HelloWorld.ui")]
[Assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
[Assembly: AssemblyTrademark("")]
[Assembly: AssemblyCulture("")]

Vous devez remplacer AssemblyTitle et AssemblyProduct dans Properties/AssemblyInfo.cs par le nouveau nom. Dans cet exemple, passez de "HelloWorld.ui" à "Section1to5.ui". Une fois que vous avez terminé de changer le nom, enregistrez et fermez Visual Studio.

  1. Dans le répertoire du projet, allez dans le dossier "HelloWorld.ui" et supprimez les répertoires "bin" et "obj".

  2. Une fois que vous avez terminé, renommez le dossier "HelloWorld.ui" avec le nouveau nom du projet.

  3. Ouvrez le fichier de solutions renommé avec un éditeur de texte tel que Notepad ou Notepad ++ et modifiez la ligne suivante:

    Projet ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" ") =" HelloWorld.ui "," HelloWorld.ui\HelloWorld.ui.csproj "," {39FC65A3-3AE7-4EC9-B8F7-74F97-366C70} "

Remplacez toutes les instances de "HelloWorld.ui" par le nouveau nom que vous avez sélectionné pour votre projet, dans ce cas "Section1to5.ui". Cela modifie le chemin du projet dans le répertoire renommé à l'étape 6.

  1. Ouvrez le fichier de solutions avec visual studio, puis nettoyez et reconstruisez le projet.

  2. Vous remarquerez peut-être que le bouton "Debug/Run" a été remplacé par le bouton "Attach". Si cela se produit, faites simplement un clic droit sur le projet et choisissez l'option "Définir comme projet de démarrage". Sinon, cliquez sur Outils> Personnaliser> Commandes> Ajouter une commande> Déboguer et ajoutez le bouton.

Vous avez terminé de renommer le projet. Si vous avez des doutes, n'hésitez pas à poster et je serais ravi de vous aider!

8
Abhishek Agrawal

Supprimez vos sous-dossiers bin et obj pour supprimer une charge de référence incorrecte, puis utilisez Windows pour rechercher l'ancien nom.

Éditez n'importe quel code ou fichier XML trouvé et reconstruisez, devrait être ok maintenant.

6
Michael

J'ai essayé le projet Visual Studio Project Renamer, mais, il a jeté des exceptions dans les rares cas où je l'ai essayé.

J'ai eu un bon succès avec CopyWiz .

Je ne suis en aucun cas affilié à eux, et je n'ai pas encore payé pour cela, mais je vais peut-être devoir le faire bientôt, car c'est le seul outil qui semble fonctionner à la fois pour mes projets C # et C++. J'espère qu'ils gagnent un peu d'argent et continuent à l'améliorer.

4
Cameron

L'utilisation de la fonction "Rechercher dans les fichiers" de Notepad ++ a bien fonctionné pour moi (ctrl + H, Rechercher dans les fichiers).

http://notepad-plus-plus.org/download/v6.2.2.html

4
Wotuu

Méthode de suppression/ajout de fichier de projet

Cette méthode est entièrement destinée à renommer le répertoire du projet, tel qu’il est visualisé dans l’explorateur Windows.

  1. Sauvegardez votre projet entier en utilisant quelque chose comme GIT, SVN ou WinZip (important!).
  2. Dans la solution dans Visual Studio, supprimez le projet.
  3. Renommez le répertoire dans l'Explorateur Windows.
  4. Rajoutez le projet dans Visual Studio.

Avantages

  • Vous pouvez faire en sorte que le répertoire de l'explorateur Windows corresponde au nom du projet dans la solution.

Inconvénients

  • Si vous supprimez une bibliothèque, les références à cette bibliothèque sont supprimées des autres projets. La solution peut ne pas être compilée après cela, jusqu'à ce que vous ajoutiez les références à ladite bibliothèque (ceci est assez facile). C'est la raison pour laquelle l'étape 1 (sauvegarde) est si importante.
  • Si vous possédez un contrôle de code source, vous perdrez l'historique du fichier.

Il est utile de cliquer avec le bouton droit sur un projet et de sélectionner "Ouvrir le dossier dans l'Explorateur Windows" pour savoir où le projet est stocké lors de l'exécution de ce processus.

4
Contango

Vous pouvez:

  1. cliquez sur fichier-> nouveau -> créer un projet à partir d'un projet existant

  2. sélectionnez votre fichier d'origine, par exemple. solution 1 et entrez le nouveau nom de fichier solution 2

  3. changer le nom du projet dans la nouvelle solution 2

3
李全全

J'ai utilisé l'extension "Full Rename Project" de Visual Studio pour renommer des projets dans une solution ASP.NET Core 2.

J'ai ensuite utilisé ReSharper pour ajuster l'espace de nom (clic droit sur le projet, refactorisation, ajustement des espaces de nom ...)

https://github.com/kuanysh-nabiyev/RenameProjectVsExtension

enter image description here

2
ToastedSoul

Si vous rencontrez des problèmes lors du chargement de projets partagés, tels que Xamarin, n'oubliez pas de modifier la référence aux bibliothèques partagées dans les fichiers csproj. J'ai développé un jeu CocosSharp et les projets Droid/iOS/WP81 ne voulaient pas être chargés. Je devais changer au-dessous de la ligne dans chaque fichier csproj (Driod/iOS/WP81) qui faisait référence à Shared lib. Cela est dû au changement de nom de dossier. Remplacez donc YOUR_PREVIOUS_NAMESPACE par vos nouveaux noms de dossier.

<Import Project="..\YOUR_PREVIOUS_NAMESPACE.Shared\EmptyProject.Shared.projitems" Label="Shared" />

De plus, j'ai remarqué que pour les projets .Driod, le nom de l'assembly dans les propriétés du projet ne peut pas être modifié à l'aide de visual studio (j'utilise 2015). J'ai dû changer le nom de l'Assemblée manuellement dans le fichier .Droid.csproj.

<AssemblyName>YourNameSpace</AssemblyName>

Ensuite, j'ai chargé la solution et un nouveau nom est apparu dans la vue des propriétés du projet. Après avoir reconstruit dll avec ce nom a été généré.

2
Zenon

Je suis nouveau chez VS. Je viens d'avoir ce même problème: Nécessité de renommer un projet démarré après quelques semaines de travail. C'est ce que j'ai fait et cela a fonctionné.

  1. Juste au cas où, faites une sauvegarde de votre dossier Project, bien que vous ne le touchiez pas, mais juste au cas où!
  2. Créez un nouveau projet et enregistrez-le sous le nom que vous souhaitez pour votre "nouveau" projet, c'est-à-dire le nom auquel vous souhaitez modifier votre "ancien" projet.
  3. Construit le. Après cela, vous aurez un projet avec le nom que vous vouliez mais qui n’a tout simplement pas pour effet d’ouvrir une fenêtre (une Windows Form App dans mon cas).
  4. Une fois le nouveau projet ouvert, cliquez sur Projet-> Ajouter un élément existant et, à l'aide de l'Explorateur Windows, localisez votre 'ancien' dossier Projet et sélectionnez tous les fichiers sous ... Visual Studio xxx\Projects\oldApp\oldApp
  5. Sélectionnez tous les fichiers qu'il contient (.vb, .resx) et ajoutez-les à votre nouveau projet (celui qui devrait déjà être ouvert).
  6. Presque la dernière étape serait d'ouvrir votre fichier de projet à l'aide de la solution
    Explorer et dans le premier onglet modifient le formulaire de démarrage par défaut comme il se doit.
  7. Tout reconstruire.

Peut-être plus d'étapes mais moins ou pas de frappe du tout, juste quelques clics de souris. J'espère que ça aide :)

2
J. Davalos

La seule solution qui fonctionne pour moi sur Visual Studio 2013 dans un projet WEB:

Disons que je veux renommer "projet1" pour être "projet2". Disons que le chemin physique vers mon fichier .sln est: c:\my\path\project1\project1.sln

le chemin vers mon fichier .csproj ainsi que les dossiers bin et obj doit être: c:\my\path\project1\project1 \

  1. Ouvrez la solution dans VS en double-cliquant sur le fichier project1.sln.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet (PAS la solution !!!), sélectionnez Renommer et entrez un nouveau nom.

  3. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet et sélectionnez Propriétés. Dans l'onglet Application, modifiez le "Nom de l'assembly" et "L'espace de nommage par défaut".

  4. Dans le fichier CS principal (ou dans tout autre fichier de code tel que Global.asax, par exemple), renommez la déclaration d'espace de noms pour utiliser le nouveau nom. Pour cela, cliquez avec le bouton droit de la souris sur l'espace-noms et sélectionnez Refactor> Rename, entrez un nouveau nom. Par exemple:

espace de noms project1

4.1 Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet (PAS la solution !!!), sélectionnez Renommer et entrez un nouveau nom.

  1. Assurez-vous que: AssemblyTitle et AssemblyProduct dans Properties/AssemblyInfo.cs sont définis sur le nouveau nom ("project2").

1 [Assembly: AssemblyTitle ("Nouveau nom ici")] 2 [Assembly: AssemblyDescription ("")] 3 [Assembly: AssemblyConfiguration ("")] 4 [Assembly: AssemblyCompany ("")] 5 [Assembly: AssemblyProduct (" Nouveau nom ici ")] 6 [Assembly: AssemblyCopyright (" Copyright © 2013 ")] 7 [Assembly: AssemblyTrademark (" ")] 8 [Assembly: AssemblyCulture (" ")]

  1. Fermez le Visual Studio.

  2. Supprimer physiquement les répertoires bin et obj.

  3. Renommez le dossier parent et le dossier source avec le nouveau nom (projet2):

Dans l'exemple: c:\my\path\project1\project1

sera: c:\my\path\project2\project2

  1. Renommez le nom du fichier SLN en cliquant avec le bouton droit de la souris sur ce fichier SLN puis en le renommant.

  2. Enfin, ouvrez le fichier SLN (dans le bloc-notes ou n’importe quel éditeur), copiez et remplacez (Ctrl + h) l’ancien nom par le nouveau.

  3. Ouvrez VS et cliquez sur BUILD -> Clean Solution

  4. cliquez sur Générer -> Générer la solution, puis sur F5 pour exécuter ...

  5. Note1: Si vous obtenez quelque chose comme ceci: Erreur de compilation CS0246: le nom de type ou d'espace de nom 'project2' est introuvable (vous manque une directive using ou une référence Assembly?)

Fichier source: c:\Utilisateurs\Nom d'utilisateur\AppData\Local\Temp\Temporaire Fichiers ASP.NET\root\78dd917f\d0836ce4\App_Web_index.cshtml.a8d08dba.b0mwjmih.0.cs

Ensuite, allez dans le dossier "Fichiers temporaires ASP.NET" et supprimez tout.

  1. Remarque 2: Si vous essayez de "sauvegarder sous" un nouveau projet nommé et de conserver l'ancien, envisagez de dupliquer votre base de données en modifiant les connectionStrings dans web.config et en relançant les migrations si vous en avez une. projet.
2
Dudi

Si vous créez un site Web dans Visual Studio 2010. Vous pouvez modifier le nom du projet comme suit.

Étape 1: dans Visual Studio 2010, le fichier SLN sera stocké dans le dossier du projet dans Visual studio 2010 et les fichiers source dans le dossier Site Web de Visual Studio 2010.

Étape 2: Renommez le dossier en cliquant avec le bouton droit de la souris sur ce dossier, puis Renommez qui contient votre projet SLN.

Étape 3: Renommez le nom du fichier SLN en cliquant avec le bouton droit de la souris sur ce fichier SLN, puis en le renommant.

Étape 4: renommez le dossier contenant la source de ce fichier SLN sous Site Web dans Visual Studio 2010.

Étape 5: Enfin, double-cliquez sur votre fichier SLN et modifiez la racine de votre dossier source SLN.

2
Pavi Thran

avec la réponse de ce lien

https://stackoverflow.com/a/19844531/6767365

renommer ces fichiers. J'ai renommé mon projet en MvcMovie et cela fonctionne très bien enter image description here

0
Pankaj Shrivastava

Pour renommer un site Web:

http://www.c-sharpcorner.com/Blogs/46334/rename-website-project-in-visual-studio-2013.aspx

localisez et modifiez le fichier applicationhost.config de IISExpress, qui se trouve ici: C:\Utilisateurs {nom d'utilisateur}\Documents\IISExpress\config

0
Ricardo Rix