Proyecto de copia de Visual Studio

141

Me gustaría hacer una copia de mi proyecto. Prefiero no comenzar desde cero agregando archivos y referencias, etc. Tenga en cuenta que no me refiero a copiar para la implementación. Solo copia simple.

¿Hay alguna herramienta en VS para hacer esto? Estoy usando VS 2008

culebra
fuente

Respuestas:

144

Si desea una copia, la forma más rápida de hacerlo sería guardar el proyecto. Luego haga una copia de todo en el Sistema de archivos. Regrese a Visual Studio y abra la copia. A partir de ahí, lo más probable es que recomiende cambiar el nombre del proyecto / solución para que no tenga dos del mismo nombre, pero esa es la forma más rápida de hacer una copia.

Mitchel Sellers
fuente
25
¿Qué le sucede al ProjectGUID, entonces?
Lars Corneliussen
44
No olvides eliminar archivos svn si tienes alguno (¡lo hice!) -> weblogs.asp.net/jgalloway/archive/2007/02/24/…
qbantek
51
VS actualiza automáticamente el GUID del proyecto, si existe otro proyecto con el mismo GUID en la misma solución.
Sebastian Krysmanski
3
Estoy intentando esto, pero no cambia el nombre de los espacios de nombres de las aplicaciones. No es lo que estaba buscando.
Jason
3
Project GUID NO ACTUALIZADO AUTOMÁTICAMENTE POR VS en Community 2017 Versión 15.8.4. De hecho, ¿cómo podría ser si su AssemblyInfo.cs está en control de código fuente?
PeterVermont
134

Solo crea una plantilla ;

De su proyecto, elija: Proyecto - Exportar plantilla

El asistente te permitirá definir

  • Nombre de la plantilla
  • Descripción de la plantilla
  • Icono
  • Imagen de vista previa

Luego, comprime su proyecto en el directorio 'Mis plantillas exportadas'. También tiene la opción de hacer que su plantilla esté disponible cuando cree un nuevo proyecto.

Cuando use su plantilla para crear un nuevo proyecto, el espacio de nombres será correcto para 'your_new_project_name' en cada archivo, todas las referencias correctas, todo perfecto :)

Puede enviar el archivo .zip a cualquiera, y ellos deben copiar (no descomprimir) el archivo .zip en el directorio Templates \ ProjectTemplates para que ellos también lo usen.

Hice una plantilla ASP.NET MVC con carpetas, página de diseño, modelos de vista, etc., organizados tal como me gustan.

NOTA:
Si tiene una carpeta vacía en su proyecto, NO se agregará a la plantilla, por lo que acabo de agregar una clase vacía apropiada para cada carpeta y una imagen de muestra para la carpeta de imágenes.

Shane
fuente
28
OMI, la mejor respuesta.
fischgeek
14
En VS2017, la plantilla de exportación estaba debajo del elemento de menú de nivel superior del proyecto.
Choco
3
Esto es increíblemente útil, ¿cómo no sabía esto antes? ¡Gracias!
Aldarrion
55
Esta debería ser la respuesta elegida. ¡Muy fácil! Este proceso también debería haberlo copiado en su carpeta Templates \ ProjectTemplates, solo asegúrese. Tuve que reiniciar mi Visual Studio para verlo en el diálogo de creación de mi proyecto.
midoriha_senpai
3
Cuando llegó el momento de importar la plantilla para crear un nuevo proyecto, no pude averiguar cómo hacerlo. Resultó que tenía que usar la barra de búsqueda en el cuadro de diálogo Nuevo proyecto para ubicar la plantilla.
Tawab Wakil
6

Supongo que si esto es algo que haces a menudo, hay una pequeña utilidad (no gratuita) que promete hacerlo por ti: no lo he usado, así que no estoy seguro de lo bueno que es:

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

También existe este proyecto en CodePlex:

http://clone.codeplex.com/

Probablemente probaré el proyecto codeplex, y si no funciona, renombraré manualmente todo y editaré el archivo sln.

sofismo
fuente
La aplicación codeplex "Solution Clone" funciona bastante bien. Copia y renombra todos los archivos de solución y mantiene todas las referencias. Lo único que tenía que hacer era volver a colocarlo en el nuevo archivo de proyecto renombrado después de abrir la solución copiada y luego renombrar el nombre del ensamblado y el espacio de nombres raíz en las propiedades del proyecto. Sin embargo, fue mucho más fácil que hacer todo manualmente.
Fütemire
4

Es altamente NO RECOMENDABLE copiar proyectos en absoluto porque algunos archivos de configuración formados internamente como .csproj, .vspscc etc. pueden (y muy probablemente lo harán) señalar referencias que pertenecen a la ubicación de soluciones anteriores y otras rutas / ubicaciones en el sistema o TFS A menos que sea un experto en leer estos archivos y corregir referencias, no intente copiar proyectos.

Puede crear un proyecto esquelético del mismo tipo que pretende copiar, esto crea los archivos .csproj, .vspscc adecuados . Ahora puede copiar los archivos de clase, las secuencias de comandos y otro contenido del proyecto anterior, ya que no afectarán. Esto asegurará un control de versión y construcción sin problemas (si decide estar interesado en eso)

Habiendo dicho todo esto, permíteme darte el método para copiar el proyecto de una manera gradual:

  1. Vaya al proyecto que desea copiar en el explorador de soluciones y haga clic derecho .
  2. Ahora seleccione ' Abrir carpeta en el Explorador de archivos ' (suponiendo que tenga la solución asignada a una ruta local en su disco).
  3. Seleccione los Proyectos que desea replicar como carpetas completas (junto con todas las dependencias, archivo bin .vspscc, archivo .csproj)
  4. Péguelos en la ubicación deseada (podría ser su misma carpeta de solución o incluso otra carpeta de solución. Si está dentro de la misma carpeta de solución, entonces se le pedirá que cambie el nombre, también el .csproj y otros archivos internos al nuevo nombre) )
  5. No regrese a Visual Studio, haga clic con el botón derecho en Solución> Agregar> Proyecto existente ...
  6. Examine y seleccione el archivo de proyecto (archivo .csproj) ahora desde la ubicación en la que lo colocó y seleccione ' abrir '
  7. Este archivo ahora aparece en el explorador de soluciones para que pueda trabajar.

Es posible que ahora tenga que resolver algunos errores de compilación probablemente con referencias duplicadas / faltantes y otras cosas, pero de lo contrario es tan prístino en lógica y estructura como esperaba que fuera.

Vikram K
fuente
2
Actualización: La mejor respuesta a partir de 2019, es la siguiente de @Shane. Hacer plantillas VS es la manera perfecta de clonar proyectos sin problemas de referencias.
Vikram K
3

Sigo estos pasos y uso la herramienta de desarrollo llamada Resharper , que por cierto es increíble:

Entonces,

  1. Copie la carpeta del proyecto existente al destino que desea
  2. Vaya al control de origen y haga clic con el botón derecho en la carpeta raíz que desee y seleccione "Agregar elementos a la carpeta ...". Luego, aparecerá un asistente para elegir los archivos que desea copiar (no hay necesidad de algunos archivos y el asistente lo guía por ese motivo de forma predeterminada).
  3. Cambiar el nombre del archivo de solución (* .sln)
  4. Cambie los nombres de los subproyectos si existen.
  5. Use Resharper para cambiar el nombre de los espacios de nombres vinculantes (haré el trabajo sucio con seguridad de forma automática). La forma alternativa es cambiar manualmente todos los espacios de nombres con el nuevo nombre.
  6. La misma acción con los nombres de los métodos.
  7. Verifique las propiedades de la solución si desea cambiar.

Eso es. ¡¡¡Estas listo!!!

Giannis Grivas
fuente
1

La mejor manera es crear un nuevo proyecto desde cero, luego ir a la carpeta con los archivos de proyecto que desea copiar (proyecto, formulario1, todo excepto las carpetas). Cambie el nombre de los archivos (a excepción de los archivos form1), por ejemplo: copié archivos Ch4Ex1 en mi proyecto Ch4Ex2 pero primero cambié el nombre de los archivos a Ch4Ex2. Copie y pegue esos archivos en el Explorador de soluciones para el nuevo proyecto en Visual Studio. ¡Entonces solo sobrescribe los archivos y estarás listo!

Hilo antiguo, pero espero que ayude a cualquiera que busque esta respuesta.

Alperon
fuente
0

Tengo un proyecto donde los archivos de origen están en una carpeta debajo de la carpeta del proyecto. Cuando copié la carpeta del proyecto sin la carpeta de origen y abrí el proyecto copiado, no faltan los archivos de origen, sino que se encuentran en la ubicación anterior. Cerré el proyecto, copié también la carpeta de origen y volví a abrir el proyecto. Ahora, el proyecto hace referencia mágica a los archivos fuente copiados (tanto la nueva ruta apareció en "guardar como" y un cambio en un archivo se ha guardado en la versión copiada).

Hay una advertencia: si no hay carpetas de proyectos antiguas y nuevas debajo de una carpeta de biblioteca usada, la magia mencionada anteriormente descarta también la referencia absoluta a la biblioteca y la espera bajo la misma ruta relativa.

Intenté esto con VS Express 2012.

Rainald62
fuente
0

Mi solución es un poco diferente: la computadora en la que residía el paquete murió y, por lo tanto, me vi obligado a recrearla en otra computadora.

Lo que hice (en VS 2008) fue abrir los siguientes archivos en mi directorio:

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

Cuando hice esto, una ventana emergente me preguntó si el archivo sln iba a ser una nueva solución y cuando hice clic en 'sí' todo funcionó a la perfección.

Brian
fuente
0

Después de probar las soluciones anteriores y crear copias para proyectos MVC

Para proyectos MVC, actualice los números de puerto en el archivo .csproj, puede obtener ayuda de iis applicationhost.config para verificar los números de puerto. Los mismos números de puerto causarán problemas de carga de ensamblaje en IIS.

Ganesh Vellanki
fuente
0

Siguiendo la respuesta de Shane anterior (que funciona muy bien, por cierto) ...

Puede encontrar una gran cantidad de triángulos amarillos en la lista de referencias. La mayoría de estos pueden ser eliminados por a Build->Clean Solutiony Build->Rebuild Solution.

Tuve algunas referencias de API de Google que fueron un poco más tercas.

Intentar reinstalar el paquete NuGet de la misma versión no funcionó.
Visual Studio cree que ya lo tienes instalado.

Para evitar esto:
1: Escriba la versión original.
2: Instale la próxima versión superior ... luego desinstálela.
3: Instale la versión original del paso 1.

Chris Catignani
fuente
0

Yo uso Visual Studio 2013 donde Proyecto> Exportar plantilla no es una opción. Aquí es lo que utilizo para clonar un proyecto.

Desde su solución: Archivo> Exportar plantilla> seleccione el proyecto para crear la plantilla, observe la ruta de guardado

Descargue e instale VS 2013 SDK aquí

Cree un nuevo proyecto VSIX en Extensibilidad

En el cuadro de diálogo Manifiesto VSIX, seleccione la pestaña Activos

Complete el cuadro de texto Autor

Elija "Plantilla de proyecto" para Tipo y Examinar para agregar la plantilla exportada (guardada en la ruta que anotó en el paso 1)

Guarde y compile el proyecto VSIX. Vaya a la carpeta ... / bin / Debug del proyecto VSIX y haga doble clic para ejecutar el archivo .vsix

Inicie una nueva instancia de Visual Studio y debería ver su plantilla debajo del tipo de proyecto que sea su plantilla. Crea un nuevo proyecto a partir de tu plantilla

Tendrá que volver a agregar cualquier referencia dll

Smitty-Werben-Jager-Manjenson
fuente
0

La forma más fácil de hacer esto sería exportar el proyecto como plantilla y guardarlo en la ubicación predeterminada de la plantilla. Luego, copie la plantilla en el mismo directorio exacto en la ubicación a la que desea moverla. Después de eso, abra Visual Studio en la nueva ubicación, cree un nuevo proyecto y recibirá un mensaje para buscar una plantilla. Busque lo que haya llamado la plantilla, selecciónela y listo.

La compañía Nyla Lauren
fuente