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


El problema es simple en realidad. En lugar de crear carpetas en Visual Studio, creo una estructura de directorio para mi proyecto en el sistema de archivos. ¿Cómo incluyo todas las carpetas y archivos en un proyecto, manteniendo la estructura?

Si agrego "Archivo existente" en una carpeta llamada Servicios y navego a un archivo en la estructura del directorio ... Servicios> Administración de cuentas> Crear cuenta.cs, ​​aparece en Visual Studio de la siguiente manera: Servicios> Crear cuenta.cs. No quiero esto.

Tengo una estructura de directorio completa ya que estoy imitando a los desarrolladores de nuestros clientes que usan la misma estructura para la organización. ¿Cómo agrego todas las carpetas y archivos al proyecto en Visual Studio? ¿O tengo que hacer lo que hacen la mayoría de los usuarios de Microsoft y "aguantarlo" y volver a crear todas y cada una de las carpetas a través de Visual Studio?


601
2017-12-25 03:17


origen


Respuestas:


Necesita poner su estructura de directorio en su directorio de 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".

enter image description here

enter image description here


1055
2017-12-25 03:25



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


55
2017-12-25 03:48



Copiar pegar.

Para agregar una carpeta, todos los subdirectorios y archivos también podemos copiar y pegar. Por ejemplo, podemos:

  1. Haga clic con el botón derecho en el explorador de Windows en la carpeta y copie en la carpeta con muchos archivos y carpetas.

  2. Luego, en el Explorador de soluciones de Visual Studio, haga clic con el botón derecho en la carpeta de destino y haga clic en Pegar.

  3. Opcional agregar a TFS; Luego, en la carpeta superior, haga clic derecho y regístrese en TFS para verificar todas las subcarpetas y archivos.


25
2018-06-25 14:38



En Visual Studio 2015, así es como lo haces.

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

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

Esto puede restringirse para incluir solo archivos dentro de la ruta especificada:

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

O incluso solo archivos con una extensión especificada:

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

Referencia: http://jamesrpatterson.com/blog/automatic-include-in-project-for-visual-studio


23
2018-02-25 16:18



Puedes usar un enlace simbólico. Esto hace que la modificación del archivo en un proyecto lo modifique en el otro (ya que en realidad es el mismo archivo).

Para hacer esto:

  1. Abra el indicador de cmd como administrador
  2. mklink / d [nombre del directorio del proyecto actual] [directorio en otro proyecto al que debe apuntar]

Esto tiene sus inconvenientes y dificultades, pero lo uso en ocasiones para bibliotecas duplicadas que necesitan nombres diferentes.

Editar para Anoop: Pasos para agregar a Visual Studio:

  1. Crea un enlace en la carpeta del proyecto usando los pasos anteriores.
  2. En Visual Studio ... seleccione un proyecto en Solution Explorer.
  3. En la parte superior de Solution Explorer ... haga clic en el botón Mostrar todos los archivos (puede que necesite hacer clic dos veces si ya está activo).
  4. El enlace ahora se mostrará en su proyecto ... haga clic con el botón derecho y seleccione Incluir en proyecto.

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


13
2017-10-23 21:24



Para ampliar en La respuesta de Yuchen, puede incluir archivos y rutas como un enlace. Esto no es lo mismo que agregar los elementos existentes porque no crea una copia adicional en la estructura de carpetas de su proyecto. Es útil si desea utilizar una carpeta / archivo canónico, etc. en muchos lugares diferentes, pero solo desea mantener una versión / copia de la misma.

Aquí hay un ejemplo de lo que puede agregar a un *.csproj archivo 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 que he definido, puede usar las variables de entorno integradas de la misma manera.

El último grupo de ejemplo es un grupo de archivos de contenido que necesito en el resultado final. Ver https://stackoverflow.com/a/11808911/492 y otras respuestas y enlaces allí para más sobre eso.

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


3
2017-08-21 23:30



En Visual Studio 2017, cambia entre Vista de la solución y Vista de carpeta de ida y vuelta. Creo que esta es una mejor opción, ya que mantendrá la solución más limpia. Lo uso para editar archivos .gitignore, .md, etc.

Solution View and Folder View


2
2018-03-14 14:06



En Visual Studio 2013, no pude hacer que "Incluir en proyecto" funcionara al hacer clic con el botón derecho en una carpeta. Lo que funcionó fue expandir la carpeta, seleccionar todos los archivos y luego elegir "Incluir en proyecto". Fue muy tedioso ya que tiene que hacer cada carpeta una por una (pero al menos puede hacer todos los archivos en cada carpeta de una vez), y parece almacenar la ruta del archivo (puede ver esto al ver las propiedades en el archivo) y mirando la opción "Ruta relativa").

Espero utilizar esto para implementar algunos archivos de datos en un proyecto de Instalador de Visual Studio, y parece recoger los archivos incluidos y preservar sus rutas.


1
2018-01-17 15:06



Por lo que puedo decir, la única forma de hacerlo en VS2010 es similar al método de arrastrar y soltar. Haga clic con el botón derecho en la solución a la que desea agregar un proyecto. El menú de la aplicación tendrá un elemento de agregar ... Al abrir eso, encuentra que una de las opciones es agregar un proyecto existente a la solución.

En el cuadro de diálogo que se abre, navegue hasta la carpeta que contiene el archivo de proyecto para la solución y selecciónela. VS, como parte de la importación de ese archivo de proyecto, también importará el directorio completo y, supongo que cualquier directorio subordinado que sea parte de ese proyecto.

Como esto requiere un archivo de proyecto existente, no será imposible importar un árbol de directorio hasta que ese árbol se haya convertido a un proyecto.


0
2018-04-29 20:04



Creo que encontré una forma de hacer esto con Compile Include = ". \ Code ***. Cs" Lo que quería es incluir código recursivamente en mi carpeta de código.

Aquí está el ejemplo del 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>

0
2018-01-31 17:29