Projet de copie Visual Studio


141

Je souhaite faire une copie de mon projet. Je préfère ne pas commencer à le faire à partir de zéro en ajoutant des fichiers et des références, etc. Veuillez noter que je ne parle pas de copie pour le déploiement. Juste une copie ordinaire.

Existe-t-il un outil dans VS pour faire cela? J'utilise VS 2008

Réponses:


144

Si vous voulez une copie, le moyen le plus rapide de le faire serait de sauvegarder le projet. Ensuite, faites une copie de l'ensemble sur le système de fichiers. Revenez dans Visual Studio et ouvrez la copie. À partir de là, je recommanderais très probablement de renommer le projet / la solution afin que vous n'en ayez pas deux du même nom, mais c'est le moyen le plus rapide de faire une copie.


25
Qu'arrive-t-il alors au ProjectGUID?
Lars Corneliussen

4
N'oubliez pas de supprimer les fichiers svn si vous en avez (je l'ai fait!) -> weblogs.asp.net/jgalloway/archive/2007/02/24
...

51
Le GUID du projet est mis à jour automatiquement par VS, si un autre projet avec le même GUID existe dans la même solution.
Sebastian Krysmanski

3
J'essaye ceci, mais cela ne renomme pas les espaces de noms d'application. Pas ce que je cherchais.
Jason

3
GUID du projet NON MIS À JOUR AUTOMATIQUEMENT PAR VS dans Community 2017 version 15.8.4. En fait, comment pourrait-il être si votre AssemblyInfo.cs est dans le contrôle du code source?
PeterVermont

134

Créez simplement un modèle ;

À partir de votre projet, choisissez: Projet - Modèle d'exportation

L'assistant vous permettra de définir

  • Nom du modèle
  • Description du modèle
  • Icône
  • Aperçu de l'image

Ensuite, il zippe votre projet dans le répertoire «Mes modèles exportés». Vous avez également la possibilité de rendre votre modèle disponible lorsque vous créez un nouveau projet.

Lorsque vous utilisez votre modèle pour créer un nouveau projet, l'espace de noms sera correct pour 'votre_nouveau_nom_projet' dans chaque fichier, toutes les références sont correctes, tout est parfait :)

Vous pouvez envoyer le fichier .zip à n'importe qui, et ils doivent copier (et non décompresser) le fichier .zip dans le répertoire Templates \ ProjectTemplates pour qu'ils l'utilisent également.

J'ai créé un modèle ASP.NET MVC avec des dossiers, une page de mise en page, des modèles de vue, etc. organisés comme je les aime.

REMARQUE:
si vous avez un dossier vide dans votre projet, il ne sera PAS ajouté au modèle, j'ai donc simplement ajouté une classe vide appropriée à chaque dossier et un exemple d'image pour le dossier images.


28
OMI, meilleure réponse.
fischgeek

14
Dans VS2017, le modèle d'exportation se trouvait sous l'élément de menu de niveau supérieur Projet.
Choco

3
C'est incroyablement utile, comment n'ai-je pas su cela avant? Merci!
Aldarrion

5
Cela devrait être la réponse choisie. Très facile! Ce processus devrait également l'avoir copié dans votre dossier Templates \ ProjectTemplates, assurez-vous simplement. J'ai dû redémarrer mon Visual Studio pour le voir dans ma boîte de dialogue de création de projet.
midoriha_senpai

3
Quand est venu le temps d' importer le modèle pour créer un nouveau projet, je ne savais pas comment le faire. Il s'est avéré que je devais utiliser la barre de recherche dans la boîte de dialogue Nouveau projet pour localiser le modèle.
Tawab Wakil

6

Je suppose que si c'est quelque chose que vous faites souvent, il y a un petit utilitaire (non gratuit) qui promet de le faire pour vous: je ne l'ai pas utilisé, donc je ne sais pas à quel point c'est bon:

http://www.kinook.com/CopyWiz/

Il y a aussi ce projet sur CodePlex:

http://clone.codeplex.com/

Je vais probablement essayer le projet codeplex, et si cela ne fonctionne pas, je renommerai tout manuellement et modifierai le fichier sln.


L'application codeplex "Solution Clone" fonctionne plutôt bien. Il copie et renomme tous les fichiers de solution et conserve toutes les références. La seule chose que je devais faire était de le renommer dans le nouveau fichier de projet renommé après avoir ouvert la solution copiée, puis de renommer le nom de l'assemblage et l'espace de noms racine dans les propriétés du projet. C'était beaucoup plus facile que de tout faire manuellement.
Fütemire

4

Il est fortement déconseillé de copier des projets du tout car certains fichiers de configuration formés en interne comme .csproj, .vspscc, etc. peuvent (et le feront très probablement) pointer vers des références qui appartiennent à l'emplacement des solutions précédentes et à d'autres chemins / emplacements dans le système ou TFS. À moins que vous ne soyez un expert dans la lecture de ces fichiers et la correction des références, n'essayez pas de copier des projets.

Vous pouvez créer un projet squelette du même type que vous avez l'intention de copier, cela crée un fichier .csproj, .vspscc approprié . Vous êtes maintenant libre de copier les fichiers de classe, les scripts et autres contenus du projet précédent car ils n'auront aucun impact. Cela garantira une construction et un contrôle de version fluides (si vous choisissez d'être intéressé par cela)

Après avoir dit tout cela, laissez-moi vous donner la méthode pour copier le projet de toute façon par étapes:

  1. Accédez au projet que vous souhaitez copier dans l'explorateur de solutions et cliquez avec le bouton droit de la souris .
  2. Sélectionnez maintenant `` Ouvrir le dossier dans l'explorateur de fichiers '' (en supposant que la solution soit mappée à un chemin local sur votre disque).
  3. Sélectionnez les projets que vous souhaitez répliquer sous forme de dossiers entiers (avec toutes les dépendances, fichier bin .vspscc, fichier .csproj)
  4. Collez-les à l'emplacement souhaité (il peut s'agir de votre même dossier de solution ou même d'un autre dossier de solution. S'il se trouve dans le même dossier de solution, vous devrez le renommer, ainsi que le .csproj et d'autres fichiers internes sous le nouveau nom. ).
  5. Non, revenez à Visual Studio, cliquez avec le bouton droit sur Solution> Ajouter> Projet existant ...
  6. Parcourez et sélectionnez le fichier de projet (fichier .csproj) maintenant à partir de l'emplacement où vous l'avez placé et sélectionnez `` ouvrir ''
  7. Ce fichier apparaît maintenant dans l'explorateur de solutions pour que vous puissiez travailler.

Vous devrez peut-être maintenant résoudre quelques erreurs de construction probablement avec des références dupliquées / manquantes et des trucs, mais sinon, c'est aussi parfait dans la logique et la structure que vous vous attendiez.


2
Mise à jour: La meilleure réponse en 2019 est celle ci-dessous de @Shane. Créer des modèles VS est le moyen idéal pour cloner des projets sans problèmes de références.
Vikram K

3

Je suis ces étapes et j'utilise l'outil de développement appelé Resharper , qui est génial d'ailleurs:

Alors,

  1. Copiez le dossier de projet existant vers la destination souhaitée
  2. Accédez au contrôle de code source et avec un clic droit juste sur le dossier racine que vous voulez et choisissez "Ajouter des éléments au dossier ...". Ensuite, un assistant apparaîtra pour choisir les fichiers à copier (il n'est pas nécessaire de certains fichiers et le l'assistant vous guide pour cette raison par défaut).
  3. Changer le nom du fichier de solution (* .sln)
  4. Modifiez les noms des sous-projets s'ils existent.
  5. Utilisez Resharper pour changer le nom des espaces de noms de liaison (je ferai automatiquement le sale boulot avec sécurité). L'autre façon est de changer manuellement tous les espaces de noms avec le nouveau nom.
  6. La même action avec les noms de méthode.
  7. Vérifiez les propriétés de la solution si vous souhaitez modifier.

C'est tout. Tu est prêt!!!


1

Le meilleur moyen est en fait de créer un nouveau projet à partir de zéro, puis d'aller dans le dossier avec les fichiers du projet que vous souhaitez copier (projet, form1, tout sauf les dossiers). Renommez les fichiers (sauf pour les fichiers form1) par exemple: J'ai copié des fichiers Ch4Ex1 dans mon projet Ch4Ex2 mais j'ai d'abord renommé les fichiers en Ch4Ex2. Copiez et collez ces fichiers dans l'Explorateur de solutions pour le nouveau projet dans Visual Studio. Ensuite, écrasez simplement les fichiers et vous devriez être prêt à partir!

Vieux fil mais j'espère que cela aidera tous ceux qui recherchent cette réponse!


0

J'ai un projet dans lequel les fichiers source se trouvent dans un dossier sous le dossier du projet. Lorsque j'ai copié le dossier du projet sans le dossier source et ouvert le projet copié, les fichiers source ne sont pas manquants mais trouvés à l'ancien emplacement. J'ai fermé le projet, copié également le dossier source et rouvert le projet. Maintenant, le projet fait référence comme par magie aux fichiers source copiés (le nouveau chemin est apparu sur "enregistrer sous" et une modification dans un fichier a été enregistrée dans la version copiée).

Il y a une mise en garde: si les anciens et les nouveaux dossiers de projet ne se trouvent pas sous un dossier de bibliothèque utilisé, la magie mentionnée ci-dessus supprime également la référence absolue à la bibliothèque et l'attend sous le même chemin relatif.

J'ai essayé cela avec VS Express 2012.


0

Ma solution est un peu différente: l'ordinateur sur lequel résidait le paquet est mort et j'ai donc été obligé de le recréer sur un autre ordinateur.

Ce que j'ai fait (dans VS 2008) était d'ouvrir les fichiers suivants dans mon répertoire:

                  - <package name>.djproj
                  - <package name>.dtproj.user
                  - <package name>.dtxs
                  - <package name>.sln
                  - Package.dtsx

Quand j'ai fait cela, une fenêtre contextuelle m'a demandé si le fichier sln allait être une nouvelle solution et lorsque j'ai cliqué sur «oui», tout fonctionnait parfaitement.


0

Après avoir essayé les solutions ci-dessus et créé une copie pour les projets MVC

Pour les projets MVC, veuillez mettre à jour les numéros de port dans le fichier .csproj, vous pouvez prendre l'aide de iis applicationhost.config pour vérifier les numéros de port. Les mêmes numéros de port entraîneront un problème de chargement d'assembly dans IIS.


0

Suite à la réponse de Shane ci-dessus (qui fonctionne très bien BTW)…

Vous pourriez rencontrer une multitude de triangles jaunes dans la liste de référence. La plupart d'entre eux peuvent être éliminés par un Build->Clean Solutionet Build->Rebuild Solution.

Il se trouve que j'ai eu des références API Google qui étaient un peu plus têtues.

Essayer de réinstaller le package NuGet de la même version n'a pas fonctionné.
Visual Studio pense que vous l'avez déjà installé.

Pour contourner ce problème:
1: Notez la version originale.
2: Installez la prochaine version supérieure ... puis désinstallez-la.
3: Installez la version originale à partir de l'étape 1.


0

J'utilise Visual Studio 2013 où Projet> Modèle d'exportation n'est pas une option. Voici ce que j'utilise pour cloner un projet.

Depuis votre solution: Fichier> Exporter le modèle> sélectionnez le projet à partir duquel créer le modèle, notez le chemin d'enregistrement

Téléchargez et installez le SDK VS 2013 ici

Créer un nouveau projet VSIX sous Extensibilité

Dans la boîte de dialogue VSIXManifest, sélectionnez l'onglet Ressources

Remplissez la zone de texte Auteur

Choisissez "Modèle de projet" pour Type et Parcourir pour ajouter le modèle exporté (enregistré au chemin que vous avez noté à l'étape 1)

Enregistrez et générez le projet VSIX. Accédez au dossier ... / bin / Debug du projet VSIX et double-cliquez pour exécuter le fichier .vsix

Démarrez une nouvelle instance de Visual Studio et vous devriez voir votre modèle sous le type de projet de votre modèle. Créez un nouveau projet à partir de votre modèle

Vous devrez rajouter toutes les références dll


0

Le moyen le plus simple de le faire serait d'exporter le projet en tant que modèle et de l'enregistrer à l'emplacement du modèle par défaut. Ensuite, copiez le modèle dans le même répertoire exact à l'emplacement vers lequel vous souhaitez le déplacer. Après cela, ouvrez Visual Studio sur le nouvel emplacement, créez un nouveau projet et vous obtiendrez une invite pour rechercher un modèle. Recherchez ce que vous avez nommé le modèle, sélectionnez-le et vous avez terminé!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.