Le problème est simple, vraiment. Au lieu de créer des dossiers dans Visual Studio, je crée une structure de répertoires pour mon projet sur le système de fichiers. Comment inclure tous les dossiers et fichiers d'un projet en conservant la structure?
Si je "Ajouter un fichier existant" sur un dossier nommé Services et naviguer vers un fichier dans la structure de répertoires .. Services> Gestion du compte> CreateAccount.cs, il apparaît dans Visual Studio comme suit: Services> CreateAccount.cs. Je ne veux pas ça.
J'ai déjà élaboré une structure de répertoires complète, car je mime les développeurs de nos clients en utilisant la même structure pour l'organisation. Comment ajouter tous les dossiers et fichiers au projet dans Visual Studio? Ou dois-je faire ce que la plupart des utilisateurs de Microsoft font et "supporter" et recréer chaque dossier via Visual Studio?
Vous devez mettre votre structure de répertoire dans le répertoire de votre projet. Cliquez ensuite sur "Afficher tous les fichiers" en haut de la boîte à outils de l'Explorateur de solutions. Après cela, le répertoire ajouté sera affiché. Vous devrez ensuite sélectionner ce répertoire, cliquer avec le bouton droit de la souris et choisir "Inclure dans le projet".
Vous pouvez également faire glisser le dossier de Explorateur Windows dans la fenêtre de votre solution Visual Studio.
Voici comment procéder dans Visual Studio 2015.
Si vous souhaitez inclure automatiquement tous les fichiers descendants sous un dossier spécifique:
<Content Include="Path\To\Folder\**" />
Cela peut être limité pour inclure uniquement 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
Copier coller .
Pour ajouter un dossier, tous les sous-répertoires et fichiers, vous pouvez également copier et coller. Par exemple, nous pouvons:
Cliquez avec le bouton droit de la souris sur l'Explorateur Windows sur le dossier et Copiez-le sur le dossier contenant de nombreux fichiers et dossiers.
Puis, dans Visual Studio Solution Explorer, cliquez avec le bouton droit sur le dossier de destination, puis cliquez sur Coller.
Ajout facultatif à TFS; Puis, dans le dossier supérieur, cliquez avec le bouton droit de la souris et enregistrez-vous dans TFS pour archiver tous les sous-dossiers et fichiers.
Vous pouvez utiliser un lien symbolique. Cela permet de modifier le fichier dans un projet et de le modifier dans l'autre (car il s'agit en fait du même fichier).
Pour faire ça:
Cela présente des inconvénients et des pièges, mais je l’utilise parfois pour les bibliothèques en double qui nécessitent des noms différents.
Modifiez pour Anoop: Étapes à ajouter à Visual Studio:
Ce sont les étapes que je suis et travaille pour un couple de projets différents.
Pour développer La réponse de Yuchen , vous pouvez inclure des fichiers et des chemins sous forme de lien. Ce n'est pas la même chose que d'ajouter les éléments existants car cela ne crée pas de copie supplémentaire dans la structure de dossiers de votre projet. C'est utile si vous voulez utiliser un dossier/fichier canonique, etc., dans beaucoup d'endroits différents, mais que vous ne voulez conserver qu'une version/copie de celui-ci.
Voici un exemple de ce que vous pouvez ajouter à un fichier *.csproj
pour créer 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 exemple est un groupe de fichiers de contenu dont j'ai besoin dans la sortie finale. Voir https://stackoverflow.com/a/11808911/492 et d'autres réponses et liens ici pour plus d'informations.
Plus d'informations sur MSBuild à https://msdn.Microsoft.com/en-us/library/bb629388.aspx
Je pense avoir trouvé un moyen de faire cela avec Compile Include = ".\Code ***. Cs" Ce que je voulais, c'est inclure le code de manière récursive dans mon dossier Code.
Voici l'exemple de fichier 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>
Dans Visual Studio 2013, "Inclure dans le projet" ne fonctionnait pas lorsque vous cliquez avec le bouton droit sur un dossier. Qu'est-ce qui a fonctionné est d'élargir le dossier, en sélectionnant tous les fichiers, puis en choisissant "Inclure dans le projet". C'était assez fastidieux, car vous devez créer chaque dossier un à un (mais au moins, vous pouvez créer tous les fichiers d'un dossier à la fois) et il apparaît que le chemin du fichier est enregistré (vous pouvez le voir en affichant les propriétés du fichier et en regardant l'option "Chemin relatif".)
J'espère pouvoir l'utiliser pour déployer certains fichiers de données dans un projet Visual Studio Installer, et il semble que les fichiers inclus soient conservés et que leurs chemins soient préservés.
Autant que je sache, le seul moyen de faire cela dans VS2010 s'apparente à la méthode du glisser-déposer. Cliquez avec le bouton droit sur la solution à laquelle vous souhaitez ajouter un projet. Le menu de l'application comportera un élément add .... En ouvrant cela, vous constatez qu’une des options consiste à ajouter un projet existant à la solution.
Dans la boîte de dialogue qui s'ouvre, accédez au dossier contenant le fichier de projet de la solution et sélectionnez-le. Lors de l'importation de ce fichier de projet, VS importera également l'intégralité du répertoire et, je suppose, tous les répertoires subordonnés faisant partie de ce projet.
Comme cela nécessite un fichier de projet existant, il ne sera pas impossible d'importer une arborescence de répertoires tant que cette arborescence n'aura pas été convertie en projet.
Visual Studio 2017 et les versions plus récentes prennent en charge un nouveau format léger .csproj
, connu sous le nom de "format SDK". Un des nombreux avantages de ce format est qu'au lieu de contenir une liste de fichiers et de dossiers inclus , les fichiers sont des caractères génériques inclus par défaut. Par conséquent, avec ce nouveau format, vos fichiers et dossiers - ajoutés dans Explorer ou sur la ligne de commande - seront automatiquement récupérés!
Le fichier SDK au format .csproj
_ fonctionne actuellement avec les types de projet suivants :
Projets de bibliothèque de classe
Applications de la console
Applications Web ASP.NET Core
Projets de .NET Core de tout type
Pour utiliser le nouveau format, créez un nouveau projet .NET Core ou .NET Standard. Comme les modèles n'ont pas été mis à jour pour le .NET Framework complet, même dans Visual Studio 2019, pour créer une bibliothèque de classes .NET, choisissez le modèle .NET Standard Library, puis modifiez le fichier de projet pour cibler la version d'infrastructure de votre choix ( le nouveau format de projet de style peut être modifié dans Visual Studio - il suffit de cliquer avec le bouton droit de la souris sur le projet dans l'explorateur de solutions et de sélectionner "Modifier le fichier de projet"). Par exemple:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</Project>
Lectures complémentaires:
Je n'ai trouvé aucune réponse à ma satisfaction, alors je me suis débrouillé.
Voici la réponse à votre question si vous souhaitez ajouter des codes sources externes à votre projet et ne souhaitez pas copier l'intégralité des codes. J'ai beaucoup de dépendances sur d'autres gits et ils sont mis à jour toutes les heures, si pas minutieusement. Je ne peux pas copier toutes les heures pour synchroniser. Voici ce que tu dois faire.
Supposons que ceci soit une structure:
/ root/projA/src
/ root/projA/includes
/ root/projB/src
/ root/projB/includes
/ root/yourProj/src
/ root/yourProj/includes
Faites de même pour projB . Maintenant, les projets externes/existants en dehors du vôtre sont présents dans votre solution/projet. Le VS les compilera ensemble . Voici une astuce. Étant donné que les fichiers projA et projB sont des dossiers virtuels dans votre projet, le compilateur peut ne pas trouver les fichiers projA/includes.
S'il ne trouve pas le projet/includes, cliquez avec le bouton droit de la souris sur le projet et sélectionnez "Propriétés".
Une mise en garde, s'il existe des fichiers d'inclusion/en-tête dupliqués, le "exclure du projet" sur le "fichier d'en-tête" ne fonctionne pas vraiment. C'est un bug dans VS.