La réponse choisie suggère qu'il serait possible d'utiliser des projets réels au lieu de dossiers de solutions, mais n'explique pas vraiment comment. Je suppose que ce que je décris ici est peut-être le moyen le moins gênant d'y parvenir ... :-P
Le problème avec les fichiers de projet standard est qu'ils seront éventuellement compilés par MSBUILD
. Et si vous voulez avoir un projet qui ne contient que des fichiers non compilables, ce sera un problème.
Mais il y a quelque temps, Visual Studio a introduit un nouveau type de projet: Projet partagé (extension .shproj). Ce type de projet n'est pas compilé par défaut, mais uniquement quand (et seulement si) il est référencé par un autre projet.
Une partie de l'astuce consiste donc à utiliser des projets partagés au lieu de dossiers de solutions . Il est évidemment possible d'ajouter un projet partagé qui n'est jamais référencé par aucun autre projet, ce qui signifie que nous pouvons éviter le problème présenté ci-dessus.
Ensuite, en utilisant la <None Include="**/*" />
clause dans le fichier .shproj, nous pouvons le faire refléter automatiquement tous les nouveaux fichiers et / ou sous-dossiers.
Donc, en gros, faites ceci:
- Créez un nouveau dossier dans votre solution.
- Ajoutez un nouveau fichier .shproj à la racine de ce nouveau dossier.
- Faites référence au nouveau .shproj dans votre solution.
Par exemple, dans mon cas, j'ai créé un DockerDev.shproj, donc je peux regrouper certains scripts liés à docker que nous exécutons uniquement sur nos machines de développement:
<?xml version="1.0" encoding="utf-8"?>
<!-- DockerDev/DockerDev.shproj -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="**/*" />
</ItemGroup>
</Project>
Ce fichier .shproj gardera une trace de n'importe quel fichier, dans n'importe quel sous-dossier de ce nouveau DockerDev
dossier dans ma solution.
Pour autant que je puisse voir, cette solution fonctionne à peu près comme ce que l'OP a demandé: elle fonctionnera comme une référence non compilable à un dossier, et elle reflétera automatiquement toutes les modifications qui y sont apportées.