Die gewählte Antwort legt nahe, dass es möglich wäre, tatsächliche Projekte anstelle von Lösungsordnern zu verwenden, erklärt jedoch nicht wirklich, wie. Ich denke, was ich hier beschreibe, ist möglicherweise der am wenigsten umständliche Weg, dies zu erreichen ... :-P
Das Problem mit regulären Projektdateien ist, dass sie schließlich von kompiliert werden MSBUILD. Und wenn Sie ein Projekt haben möchten, das nur nicht kompilierbare Dateien enthält, ist dies ein Problem.
Vor einiger Zeit hat Visual Studio einen neuen Projekttyp eingeführt: Shared Project (Erweiterung .shproj). Dieser Projekttyp wird nicht standardmäßig kompiliert, sondern nur, wenn (und nur wenn) er von einem anderen Projekt referenziert wird.
Ein Teil des Tricks besteht darin , gemeinsam genutzte Projekte anstelle von Lösungsordnern zu verwenden . Es ist natürlich möglich , ein gemeinsames Projekt hinzuzufügen, wird nie von einem anderen Projekt verwiesen wird , bedeutet , dass wir das Problem oben dargestellten vermeiden können.
Mithilfe der <None Include="**/*" />Klausel in der .shproj-Datei können wir dann festlegen, dass alle neuen Dateien und / oder Unterordner automatisch wiedergegeben werden .
Machen Sie also im Grunde Folgendes:
- Erstellen Sie einen neuen Ordner in Ihrer Lösung.
- Fügen Sie eine neue .shproj-Datei im Stammverzeichnis dieses neuen Ordners hinzu.
- Verweisen Sie auf die neue .shproj in Ihrer Lösung.
In meinem Fall habe ich beispielsweise eine DockerDev.shproj erstellt, damit ich einige Docker-bezogene Skripte gruppieren kann, die wir nur auf unseren Entwicklungsmaschinen ausführen:
<?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>
Diese .shproj-Datei verfolgt jede Datei in einem beliebigen Unterordner dieses neuen DockerDevOrdners in meiner Lösung.
Soweit ich sehen konnte, funktioniert diese Lösung ziemlich genau wie vom OP angefordert: Sie funktioniert als nicht kompilierbarer Verweis auf einen Ordner und spiegelt automatisch alle daran vorgenommenen Änderungen wider.