2008-09-11 25 views
690

Me siento ridículo por preguntar esto porque parece que debería ser tan simple, sin embargo, no he podido encontrar una respuesta a esta pregunta.Cómo "agregar un elemento existente" una estructura de directorio completa en Visual Studio?

Tengo un conjunto permanente de archivos no afiliados a ningún proyecto C# en absoluto que residen en una estructura de directorios anidados complicado. Quiero agregarlos en ese formato a un directorio diferente en una aplicación web ASP.NET en la que estoy trabajando; conservando la misma estructura Entonces, copié la carpeta en la ubicación de destino de mi proyecto e intenté "agregar un elemento existente" solo para perder la jerarquía de la carpeta anterior. Por lo general, he vuelto a crear los directorios a mano, los he copiado uno por uno y luego he agregado los elementos existentes. Simplemente hay demasiados directorios/artículos en este caso.

Entonces, ¿cómo agregar directorios y archivos existentes en Visual Studio 2008?

+24

El hecho de que esto no sea obvio para la mayoría de las personas (incluyéndome a mí) es un triste testimonio de Visual Studio. –

+11

@Pete Alvin Tengo muchos testimonios tristes sobre Visual Studio, pero lo aprecio más ahora que he pasado tiempo con algunos de los otros IDE que hay. –

+0

Visual Studio no es perfecto, sin embargo, he usado casi todos los IDE disponibles. Si es el mejor Eclipse ni siquiera está cerca, Xcode es probablemente el único que se acerca. – user1127081

Respuesta

679

Arrastre los archivos/carpetas desde el Explorador de Windows al Explorador de soluciones. Los agregará a todos. Tenga en cuenta que esto no funciona si Visual Studio está en modo de administrador, porque Windows Explorer es un proceso de modo de usuario.

+39

Esto no funciona para mí. Simplemente me da el ícono de un destino drop inútil. El show de todos los archivos a continuación funciona perfectamente, aunque – Cine

+103

En VS 2010, después de que draggin obtuvo la carpeta, elija la opción Mostrar todos los archivos en el proyecto. Los archivos existen en forma "fantasma", haga clic derecho en la carpeta e incluir en el proyecto. Luego se agregarán –

+7

@JohnPtacek: Eso funciona en un proyecto, pero no en la solución. – Will

519

Habilite "Show All Files" para el proyecto específico (puede que necesite presionar "Actualizar" para verlas) **.

Las carpetas/archivos que no son parte de su proyecto appear slightly "lighter" en el árbol del proyecto.

Right click las carpetas/archivos que desea agregar y haga clic en "Include In Project". Agregará de forma recursiva carpetas/archivos al proyecto.

** estos botones se encuentran en la mini barra de herramientas de Solution Explorer.

** asegurarse de que no está en el modo de depuración

+2

Parece que esto solo funciona para archivos más profundos que su archivo de proyecto; si mantiene el archivo de proyecto en una carpeta por sí solo, esto no funcionará. –

+25

Esto solo funciona en proyectos individuales, pero no dentro de una solución. – Will

+6

Duh ... no es donde se supone que debes poner archivos. Por supuesto, no encontrará los archivos encima de su carpeta raíz. – Bluebaron

5

que necesita para poner la estructura de directorios en el directorio del proyecto. Y luego haga clic en el icono "Mostrar todos los archivos" en la parte superior de la caja de herramientas de Solution Explorer. Después de eso, se mostrará el directorio agregado. Luego deberá seleccionar este directorio, hacer clic con el botón derecho y seleccionar "Incluir en proyecto".

+1

Esto es más o menos lo que sugiere la respuesta aceptada y uno de los comentarios debajo. – Kev

20

No entendía inmediatamente esta basada en estas descripciones, pero aquí es lo que finalmente encontré con:

  1. Encienda "Mostrar todos los archivos" - no es un icono en la barra de herramientas Explorador de soluciones
  2. con el Explorador de Windows (no el Explorador de soluciones), mover los archivos en la estructura de directorios donde usted quiere que residen
  3. Haga clic en "Actualizar" también en la barra de herramientas del Explorador de soluciones
  4. los archivos que se han movido debe ser visible "fantasma "en el Explorador de soluciones tre e estructura donde los ha colocado
  5. Haga clic con el botón derecho en sus archivos o carpetas fantasma y haga clic en "Incluir en proyecto".Todo el contenido de una carpeta se incluirán
+0

Esto es para una carpeta de solución, no un proyecto. – StingyJack

88

En el Explorador de soluciones:

  1. Haga clic en Mostrar todos los archivos (segundo icono de la izquierda en la parte superior del Explorador de soluciones)
  2. Busque la carpeta que desea añadir
  3. el botón derecho del ratón y seleccione "Incluir en el Proyecto"

lo utilizo para instalar complementos como editores de hTML y las cejas de archivos de terceros ers.

+12

¿En qué se diferencia esto de la respuesta de Brannon de 4 años antes? – ToolmakerSteve

+3

Esto no soluciona el problema original que es para una carpeta * Solution *. También ha sido cubierto previamente. – user2864740

+0

@ToolmakerSteve: Es diferente ya que es lo mismo que la solución de Gant de ... 7 años antes. http://stackoverflow.com/questions/392473/how-do-i-add-an-existing-directory-tree-to-a-project-in-visual-studio – Veverke

0

En Windows 7 se puede hacer lo siguiente:

Haga clic derecho sobre su proyecto y seleccione "Add-> elemento existente". En el cuadro de diálogo que aparece, busque la raíz del directorio que desea agregar. En la esquina superior derecha, tienes un cuadro de búsqueda. Escriba *.cs o *.cpp, sin importar el tipo de archivos que desee agregar. Una vez finalizada la búsqueda, seleccione todos los archivos, haga clic en Agregar y esperar por un tiempo ...

+5

Esto no mantiene la estructura del directorio; simplemente coloca todo en la carpeta donde hizo clic en Agregar. – Marc

32

sólo quiero señalar que las soluciones ofrecidas por encima de ambos
- Arrastrar y soltar desde el Explorador de Windows
- Mostrar todos los archivos y luego Incluir en Proyecto.
no hacemos lo que hizo la pregunta de:
Incluir en el proyecto conservando la estructura de directorios.
Al menos no en mi caso (C++/CLI Project Visual Studio 2013 en Windows 7).
En Visual Studio, una vez que están de vuelta en la vista normal (no mostrar todos los archivos) los archivos que haya añadido todos se enumeran en el nivel superior del proyecto.
Sí, en el disco aún residen donde estaban, pero en el Explorador de soluciones están sueltas.

no he encontrado ninguna manera de evitarlo, excepto recrear la estructura de directorios en el Explorador de soluciones y haciendo Agregar artículos existentes en el lugar correcto.

+0

Veo el mismo comportamiento, VS2010, C++. –

+0

Es cierto, también en Visual Studio 2010. Ni siquiera agrega los archivos sin una estructura de directorio para mí, solo el primer archivo dentro de esa estructura de carpetas y no las subcarpetas. – Jonas

+2

De acuerdo, todavía difiere. Me pregunto cómo un software popular y costoso como VS puede carecer de tal característica. Considero bastante confuso tener dos estructuras diferentes pero similares en el explorador de soluciones y en el explorador de Windows ... – Janis

6

Esto es un poco tarde, pero se puede cambiar el código XML proyecto para añadir subcarpetas y estructuras existentes automáticamente en su proyecto como "node_modules" de la NGP:

Esto es para las versiones anteriores de Visual Studio MSBuild/

<ItemGroup> 
    <Item Include="$([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)\node_modules&quot;,&quot;*&quot;,SearchOption.AllDirectories))"></Item> 
</ItemGroup> 

Para las versiones actuales de MSBuild/Visual Studio:

Sólo hay que poner en los nodos de la xml:

<Project> 
</Project> 

En este caso, basta con cambiar $ (MSBuildProjectDirectory) \ node_modules a su nombre de la carpeta

+0

Sí, algunas veces editando a mano el *.* El archivo proj te llevará a donde quieras ir. –

+1

Entonces, ¿está diciendo que alguien podría hacer un complemento por lotes? ¿Hacer esto? Porque no estoy recreando una estructura de carpetas con decenas de carpetas a mano en un xml – Spectraljump

-3

Es molesto que Visual Studio no es compatible de forma nativa, pero CMake podría generar el proyecto de Visual Studio como un trabajo alrededor.

Aparte de eso, sólo tiene que utilizar Qt Creator. A continuación, puede exportar un proyecto de VS.

15

Además de las respuestas. A continuación se muestra el icono para 'Mostrar todos los archivos', solo para una fácil referencia.

enter image description here

1

lo que funcionó para mí fue que arrastrar la carpeta en la VS, a continuación, haga clic derecho en la carpeta y seleccione "Abrir carpeta en el Explorador de archivos". Luego, seleccione todo y arrástrelos a la carpeta en VS.

0

La forma más limpia que he encontrado para hacer esto es crear un nuevo proyecto de biblioteca de clases en la carpeta de destino y redirigir todo su resultado de compilación en otro lugar. Todavía deja un archivo .csproj en esa carpeta, pero le permite verlo en Visual Studio y seleccionar qué archivos incluir en su proyecto.

2

Un buen truco que descubrí es que si vas a "Agregar existente ...", puedes arrastrar la carpeta del diálogo abierto a tu solución. Tengo mi VS para abrir en modo de administración automáticamente, así que esta fue una buena solución para mí, ya que no quería tener que deshacer eso solo para que esto funcione.

2

Por fin, Visual Studio 2017 permite al usuario importar todo el directorio con un solo clic. VS 2017 tiene una nueva funcionalidad "Abrir carpeta" que permite abrir toda la carpeta, incluso sin la necesidad de guardarla como solución. El código fuente se puede importar utilizando los siguientes métodos.

  1. Archivo -> Abrir -> Carpeta (Ctrl + Shift + O)
  2. devenv.exe < carpeta de origen>

Incluso apoya los proyectos de construcción y depuración cmake.

https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-codebase-to-visual-studio-with-open-folder/

1

Esto es lo que hago:

  1. click derecho en solución -> Añadir -> Sitio web existentes ...
  2. Selecciona la carpeta en la que su sitio web es. Solo la carpeta raíz del sitio.

Luego se agregará todo en su solución de carpetas a archivos y archivos dentro de esas carpetas.

Cuestiones relacionadas