¿Cómo agrego un árbol de directorios existente a un proyecto en Visual Studio?

StackOverflow https://stackoverflow.com/questions/392473

  •  23-08-2019
  •  | 
  •  

Pregunta

La cuestión es simple en realidad. En lugar de crear carpetas en Visual Studio, se crea una estructura de directorios para mi proyecto en el sistema de archivos. ¿Cómo puedo incluir todas las carpetas y archivos de un proyecto, manteniendo la estructura?

Si "Agregar archivo existente" en una carpeta denominada Servicios y vaya a un archivo en la estructura de directorios .. Servicios> De Cuenta> CreateAccount.cs, aparece en Visual Studio, así: Servicios> CreateAccount.cs. No quiero esto.

Tengo una estructura de directorio completo elaborado ya, como lo estoy imitando a nuestros desarrolladores de clientes utilizando la misma estructura de organización. ¿Cómo agrego todas las carpetas y archivos al proyecto en Visual Studio? O tengo que hacer lo que la mayoría de los usuarios de Microsoft y no "aguantan" y recrean todos y cada carpeta a través de Visual Studio?

¿Fue útil?

Solución

Es necesario poner la estructura de directorios en el directorio del proyecto. Y a continuación, haga clic en el icono "Mostrar todos los archivos" en la parte superior de la caja de herramientas Explorador de soluciones. Después de eso, el directorio añadida se muestra arriba. A continuación, tendrá que seleccionar este directorio, haga clic derecho y elegir la opción "Incluir en el Proyecto."

 introducir descripción de la imagen aquí

 introducir descripción de la imagen aquí

Otros consejos

También puede arrastrar y soltar la carpeta de Explorador de Windows en su ventana de Visual Studio solución.

En Visual Studio 2015, esta es la forma de hacerlo.

Si desea incluir automáticamente todos los archivos descendientes por debajo de una carpeta específica:

<Content Include="Path\To\Folder\**" />

Esto puede ser restringido para incluir sólo los archivos dentro de la ruta especificada:

<Content Include="Path\To\Folder\*.*" />

O incluso sólo los archivos con una extensión específica:

<Content Include="Path\To\Folder\*.jpg" >

Referencia: http://jamesrpatterson.com/blog/ automática-include-en-proyecto-para-visual-studio

Copiar y pegar .

Para añadir una carpeta, todos los subdirectorios y archivos también puede copiar y pegar. Podemos por ejemplo:

  1. Haz clic derecho en el Explorador de Windows en la carpeta y Copiar en la carpeta con muchos archivos y carpetas.

  2. A continuación, en Visual Studio Explorador de soluciones, haga clic en la carpeta de destino y haga clic en pasta.

  3. Opcional añadir a TFS; A continuación, en la carpeta de arriba a la derecha haga clic y registro en TFS para comprobar en todas las subcarpetas y archivos.

Puede utilizar un enlace simbólico. Esto hace que la modificación del archivo en un proyecto de modificarlo en el otro (ya que es en realidad el mismo archivo).

Para hacer esto:

  1. cmd abierto como administrador
  2. MKLINK / d [nombre del directorio actual proyecto] [directorio en otro proyecto que debe apuntar a]

Esto tiene sus inconvenientes y dificultades, pero lo uso de vez en cuando para las bibliotecas duplicados que necesitan diferentes nombres.

Editar para Anoop: Pasos para agregar a Visual Studio:

  1. Crear un enlace en la carpeta del proyecto siguiendo los pasos anteriores.
  2. En selecto proyecto en el Explorador de soluciones de Visual Studio ....
  3. En la parte superior del Explorador de soluciones ... haga clic en el botón Mostrar todos los archivos (puede que tenga que hacer clic dos veces si ya está activo).
  4. El enlace mostrará ahora en su proyecto ... botón derecho del ratón y selecciona Incluir en proyecto.

Estos son los pasos que sigo y obras para un par de diferentes proyectos.

Para ampliar de Yuchen respuesta , puede incluir archivos y caminos como un enlace. Esto no es lo mismo que la adición de los elementos existentes, ya que no hace una copia adicional en la estructura de carpetas de su proyecto. Es útil si se desea una carpeta / archivo canónica, etc para ser utilizado en una gran cantidad de lugares diferentes, pero sólo quieren mantener una versión / copia de la misma.

A continuación se muestra un ejemplo de lo que puede añadir a un archivo *.csproj para crear el enlace

<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
    <Link>Helpers\RegexExtensions.cs</Link>
</Compile>

<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
    <Link>Helpers\ExceptBy.cs</Link>
</Compile>

<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

$(Codez) es una variable de entorno de Windows he definido, puede utilizar las variables de entorno integrados de la misma manera.

El último grupo es ejemplo de un montón de archivos de contenido que necesito en la salida final. Ver https://stackoverflow.com/a/11808911/492 y otras respuestas y enlaces allí por más de eso.

Más información en https://msdn.microsoft.com/en- es / library / bb629388.aspx

En Visual Studio 2017, que cambia entre Solución Ver y Ver carpetas de ida y vuelta. Creo que esta es una mejor opción, porque evitará que el limpiador solución. Lo utilizo para editar .gitignore, archivos .MD, etc.

 Soluci&oacute;n Vista y Vista de carpetas

Creo que he encontrado una manera de hacer esto con la Compilar Incluir = "\ Código ***. Cs" Lo que quería es incluir código de forma recursiva bajo mi carpeta de código.

Aquí está la muestra de archivo de proyecto.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
    <PropertyGroup>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <StartupObject />
    </PropertyGroup>
    <PropertyGroup>
        <RootNamespace>Autogen</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
        <Compile Remove="@(Compile)" />
        <Compile Include=".\Code\**\*.cs" />
    </ItemGroup>
    <Target Name="BuildTarget">
        <Message Text="Build selected" Importance="high"/>
    </Target>
</Project>

En Visual Studio 2013, no pude conseguir "Incluir en el Proyecto de" trabajar al hacer clic derecho sobre una carpeta. Lo que hizo el trabajo se está expandiendo la carpeta, seleccionar todos los archivos y luego elegir "Incluir en el Proyecto". Era bastante tedioso ya que tienes que hacer cada carpeta uno a uno (pero al menos se puede hacer todos los archivos en cada carpeta de una sola vez), y parece que almacenar la ruta del archivo (se puede ver esto viendo las propiedades en el archivo y mirando a la opción "ruta relativa".)

Estoy esperando a usar esto para implementar algunos archivos de datos en un proyecto de Visual Studio Installer, y parece que recoger los archivos incluidos y preservar sus caminos.

Por lo que yo puedo decir, la única manera de hacer esto en VS2010 es similar al método de arrastrar y soltar. Haga clic derecho en la solución a la que desea agregar un proyecto. El menú de la aplicación tendrá un complemento ... artículo. La apertura de eso, usted encontrará que una de las opciones es añadir un proyecto existente a la solución.

En el cuadro de diálogo que se abre, vaya a la carpeta que contiene el archivo de proyecto para la solución y seleccionarlo. VS, como parte de la importación de ese archivo de proyecto, también importar todo el directorio y, supongo que todos los directorios subordinados que son parte de ese proyecto.

Como esto requiere un archivo de proyecto existente, no será imposible importar un árbol de directorios hasta que el árbol se ha convertido en un proyecto.

he encontrado ninguna respuesta a mi satisfacción, por lo que pensé yo mismo.

Aquí está la respuesta para usted si desea agregar códigos fuente externa a su proyecto y no desea copiar los códigos enteros. Tengo muchas dependencias de otros GITS y que se actualizan cada hora si no es minuciosamente. No puedo hacer copiar cada hora para sincronizar. Esto es lo que hay que hacer.

asumir esta es la estructura:

/ root / Proja / src

/ root / Proja / includes

/ root / projB / src

/ root / projB / includes

/ root / tuproyecto / src

/ root / tuproyecto / includes

  1. Comience su solución VS.
  2. Haga clic en el nombre del proyecto justo debajo de la Solución.
  3. A continuación, haga clic en el botón "Añadir", "Nuevo Filtro", poner el nombre "Proja" para Proja.
  4. Haga clic en "Proja", haga clic en "Añadir", "Nuevo Filtro", introduzca el nombre "src"
  5. Haga clic en "Proja", haga clic en "Añadir", "Nuevo Filtro", introduzca el nombre "incluye"
  6. Haga clic en "Proja" / "src", haga clic en "Añadir", "elemento existente", a continuación, vaya al directorio / root / Proja / src añadir todos los códigos fuente o de uno en uno para las que desee.
  7. Haga igual para "Proja" / "incluye"
  8. Haga igual para projB. Ahora los / proyectos externos existentes fuera de la suya están presentes en la solución / proyecto. El VS compilará juntos. He aquí un truco. Desde el Proja y projB son carpetas virtuales en virtud de su proyecto, el compilador no puede encontrar el Proja / includes.

  9. Si no encuentra el Proja / incluye, a continuación, haga clic derecho en el proyecto, seleccione la opción "Propiedades".

  10. Vaya a "C / C ++". Editar "de inclusión adicionales directorios", añade su Proja / incluyen en sí mismas "" ../projA/includes ruta relativa.

Una advertencia, si no están duplicados incluir archivos / cabecera, el "excluir del proyecto" en el "Archivo de cabecera" no realmente trabajar. Es un error en VS.

Visual Studio 2017 y más nuevos admiten un nuevo formato .csproj ligera que ha llegado a ser conocido como "formato SDK". Una de las varias ventajas de este formato es que en lugar de contener una lista de archivos y carpetas que se incluido , los archivos son comodines incluido por defecto. Por lo tanto, con este nuevo formato, los archivos y carpetas - Se ha añadido en el Explorador o en la línea de comandos - se recogerá de forma automática

El archivo de formato .csproj SDK actualmente trabaja con la siguiente tipos de proyectos :

  • proyectos de biblioteca de clases

  • Las aplicaciones de consola

  • aplicaciones web ASP.NET Core

  • .NET proyectos básicos de cualquier tipo

Para utilizar el nuevo formato, crear un nuevo proyecto .NET Core o .NET estándar. Debido a que las plantillas no se han actualizado para .NET Framework completa, incluso en Visual Studio 2019, para crear una biblioteca de clases .NET elegir la plantilla .NET biblioteca estándar, y luego editar el archivo de proyecto para dirigir la versión marco de su elección ( el nuevo formato de proyecto estilo puede ser editado dentro de Visual Studio - simplemente haga clic derecho en el proyecto en el Explorador de soluciones y seleccione "Editar archivo de proyecto"). Por ejemplo:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>
</Project>

Más información:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top