Comment puis-je ajouter un arborescence de répertoires existant à un projet dans Visual Studio?

la question est très simple. Au lieu de créer des dossiers dans Visual Studio, je crée une structure de répertoire pour mon projet sur le système de fichiers. Comment dois-je inclure tous les dossiers et fichiers dans un projet, en gardant la structure?

Si je "Ajouter un Fichier Existant" sur un dossier nommé Services et naviguez jusqu'à un fichier dans la structure de répertoire .. Services > AccountManagement > CreateAccount.cs, il apparaît dans Visual Studio comme so: Services > CreateAccount.cs. Je ne veux pas ce.

j'ai déjà élaboré une structure de répertoire complète, car j'imite nos développeurs clients en utilisant la même structure pour l'organisation. Comment puis-je ajouter tous les dossiers et les fichiers au projet dans Visual Studio? Ou dois-je faire ce que font la plupart des utilisateurs de Microsoft et "le supporter" et recréer chaque dossier via Visual Studio?

627
demandé sur Peter Mortensen 2008-12-25 06:17:13

10 réponses

vous devez mettre votre structure de répertoire dans votre répertoire de projet. Puis cliquez sur l'icône "Afficher tous les fichiers" dans le haut de la boîte à outils Solution Explorer. Après cela, le répertoire sera affiché. Vous aurez alors besoin de sélectionner ce répertoire, clic droit, et choisir " inclure dans le projet."

enter image description here

enter image description here

1099
répondu Gant 2016-04-08 17:04:43

vous pouvez également faire glisser et déposer le dossier Windows Explorer dans votre fenêtre de solution Visual Studio.

61
répondu Todd Smith 2012-09-02 23:26:36

Dans Visual Studio 2015, c'est comment vous le faites.

si vous souhaitez inclure automatiquement tous les fichiers descendants sous un dossier spécifique:

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

ceci peut être restreint pour inclure seulement les fichiers dans le chemin spécifié:

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

ou même seulement des fichiers avec une extension spécifiée:

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

référence: http://jamesrpatterson.com/blog/automatic-include-in-project-for-visual-studio

26
répondu Yuchen Zhong 2016-07-24 22:01:16

Copier-Coller .

pour ajouter un dossier, tous les sous-répertoires, et des fichiers que nous pouvons aussi copier et coller. Par exemple nous pouvons:

  1. clic droit dans Windows explorer sur le dossier, et copier sur le dossier avec de nombreux fichiers et dossiers.

  2. puis dans Visual Studio Solution explorer, faites un clic droit sur le dossier de destination et cliquez sur Coller.

  3. ajout facultatif à TFS; puis dans le dossier supérieur clic droit et s'enregistrer à TFS pour vérifier dans tous les sous-dossiers et les fichiers.

26
répondu Catto 2017-06-05 19:49:46

Vous pouvez utiliser un lien symbolique. Cela fait modifier le fichier dans un projet, le modifier dans l'autre (car c'est en fait le même fichier).

pour faire ceci:

  1. Ouvrir l'invite de cmd en tant qu'administrateur
  2. mklink /d [répertoire du projet en cours nom] [répertoire dans un autre projet, elle doit pointer vers l']

cela a ses inconvénients et pièges, mais je l'utilise à l'occasion pour dupliquer bibliothèques qui ont besoin de noms différents.

Éditer pour Anoop: Étapes à ajouter à Visual Studio:

  1. créer un lien dans le dossier du projet en utilisant les étapes ci-dessus.
  2. In Visual Studio... sélectionnez le projet dans l'Explorateur de solutions.
  3. au sommet de Solution Explorer... cliquez sur le bouton Afficher tous les fichiers (vous devrez peut-être le cliquer deux fois s'il est déjà actif).
  4. le lien apparaîtra maintenant dans votre projet... cliquez-droit et choisissez Inclure Dans le Projet.

ce sont les étapes que je suis et fonctionne pour un couple de projets différents.

13
répondu Edyn 2014-12-02 14:53:48

pour développer réponse de Yuchen , vous pouvez inclure des fichiers et des chemins comme un lien. Ce n'est pas la même chose que d'ajouter les éléments existants car cela ne fait pas de copie supplémentaire dans la structure du dossier de votre projet. C'est utile si vous voulez qu'un dossier / fichier canonique soit utilisé dans beaucoup d'endroits différents, mais vous voulez seulement maintenir une version/copie de celui-ci.

Voici un exemple de ce que vous pouvez ajouter à un *.csproj pour créer le fichier le lien

<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) est une variable D'environnement Windows que j'ai définie, vous pouvez utiliser les variables d'environnement intégrées de la même manière.

le dernier groupe d'exemple est un tas de fichiers de contenu dont j'ai besoin dans la sortie finale. Voir https://stackoverflow.com/a/11808911/492 et les autres réponses et des liens pour en savoir plus.

plus D'informations sur MSBuild à https://msdn.microsoft.com/en-us/library/bb629388.aspx

3
répondu CAD bloke 2017-08-21 23:30:09

Dans Visual Studio 2017, vous basculez entre Solution de Vue et Vue du Dossier d'avant en arrière. Je pense que c'est une meilleure option, parce qu'elle gardera la solution plus propre. Je l'utilise pour modifier .gitignore,.fichiers md,etc.

Solution View and Folder View

3
répondu Siavash Mortazavi 2018-03-14 14:06:33

dans Visual Studio 2013, je n'ai pas pu obtenir "Include in Project" pour travailler en cliquant avec le bouton droit de la souris sur un dossier. Ce qui a fonctionné, c'est d'étendre le dossier, de sélectionner tous les fichiers puis de choisir "inclure dans le projet". C'était assez fastidieux car vous devez faire chaque dossier un par un (mais au moins vous pouvez faire tous les fichiers dans chaque dossier en une seule fois), et il semble stocker le chemin du fichier (vous pouvez le voir en regardant les propriétés sur le fichier et en regardant l'option "chemin relatif".)

j'espère utiliser ceci pour déployer quelques fichiers de données dans un projet D'installateur de studio visuel, et il semble prendre les fichiers inclus et préserver leurs chemins.

1
répondu Malvineous 2015-01-17 15:06:01

je pense que j'ai trouvé un moyen de le faire avec la compilation Include=".\Code.***cs" Ce que je voulais, c'est inclure le code de façon récursive dans mon dossier de Code.

Voici l'échantillon du dossier de projet.

<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>
1
répondu RJ Thompson 2018-01-31 17:29:50

pour autant que je puisse dire, la seule façon de le faire en VS2010 est similaire à la méthode drag and drop. Cliquez-droit sur la solution à laquelle vous souhaitez ajouter un projet. Le menu application aura un add ... article. Ouverture, vous constatez que l'une des options consiste à ajouter un projet existant à la solution.

Dans la boîte de dialogue qui s'ouvre, naviguez jusqu'au dossier contenant le fichier de projet pour la solution et le sélectionner. Contre la volonté, dans le cadre de l'importation du projet Fichier, aussi importer le répertoire entier et, je suppose que tous les répertoires subordonnés qui font partie de ce projet.

comme cela nécessite un fichier de projet existant, il ne sera pas impossible d'importer un arbre de répertoire tant que cet arbre n'aura pas été converti en projet.

0
répondu Fenton Smith 2013-04-29 20:04:47