Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der „Lösungs-Explorer“ schachtelt verwandte Dateien zur besseren Organisation und um die Auffindbarkeit zu erleichtern. Wenn Sie z. B. einem Projekt ein Windows Forms-Formular hinzufügen, wird die Codedatei für das Formular im Lösungsexplorer unter dem Formular geschachtelt. In .NET Core-Projekten (und .NET 5 und höher) können Dateischachtelungen einen Schritt weiter ausgeführt werden. Sie können zwischen den Dateischachtelungseinstellungen Aus, Standard und Web wählen. Sie können auch anpassen, wie Dateien geschachtelt werden , oder lösungsspezifische und projektspezifische Einstellungen erstellen.
Hinweis
In Visual Studio 2022, Version 17.2 und früher, wurde dieses Feature nur für ASP.NET Core-Projekte unterstützt. In Version 17.3 und höher unterstützen alle auf .NET ausgerichteten Projekte die Dateischachtelung.
Optionen für die Dateischachtelung
Die verfügbaren Optionen für die nicht anpassbare Dateischachtelung sind folgende:
Aus: Mit dieser Option erhalten Sie eine flache Liste von Dateien ohne jegliche Verschachtelung.
Standard: Mit dieser Option erhalten Sie das Standardverhalten für die Dateiverschachtelung im Lösungs-Explorer. Wenn für einen bestimmten Projekttyp keine Einstellungen vorhanden sind, werden keine Dateien im Projekt geschachtelt. Wenn Einstellungen vorhanden sind (z.B. für ein Webprojekt), wird die Verschachtelung angewendet.
Web: Diese Option wendet das Verhalten des Webdateischachtelungsverhaltens auf alle Projekte in der aktuellen Lösung an. Es hat zahlreiche Regeln, und wir empfehlen Ihnen, es auszuchecken und uns mitzuteilen, was Sie denken. Der folgende Screenshot zeigt nur ein paar Beispiele für das Dateischachtelungsverhalten, das Sie mit dieser Option erhalten:
Anpassen der Dateischachtelung
Wenn Ihnen die Ergebnisse der Standardeinstellungen nicht gefallen, können Sie Ihre eigenen benutzerdefinierten Schachtelungseinstellungen erstellen, die den Projektmappen-Explorer anweisen, wie Dateien geschachtelt werden sollen. Sie können beliebig viele benutzerdefinierte Dateischachtelungseinstellungen hinzufügen und zwischen ihnen wechseln. Zum Erstellen einer neuen benutzerdefinierten Einstellung können Sie mit einer leeren Datei beginnen oder die Standardeinstellungen als Ausgangspunkt verwenden:
Es wird empfohlen , Die Standardeinstellungen als Ausgangspunkt zu verwenden, da es einfacher ist, mit bereits funktionsfähigen Funktionen zu arbeiten. Wenn Sie die Standardeinstellungen als Ausgangspunkt verwenden, sieht die .filenesting.json Datei ähnlich der folgenden Datei aus:
Wenn Ihnen die Ergebnisse der Standardeinstellungen nicht gefallen, können Sie Ihre eigenen benutzerdefinierten Schachtelungseinstellungen erstellen, die den Projektmappen-Explorer anweisen, wie Dateien geschachtelt werden sollen. Sie können beliebig viele benutzerdefinierte Dateischachtelungseinstellungen hinzufügen und zwischen ihnen wechseln. Um eine neue benutzerdefinierte Einstellung zu erstellen, können Sie mit einer leeren Datei beginnen oder die Webeinstellungen als Ausgangspunkt verwenden:
Es wird empfohlen, Webeinstellungen als Ausgangspunkt zu verwenden, da es einfacher ist, mit etwas zu arbeiten, das bereits funktioniert. Wenn Sie die Webeinstellungen als Ausgangspunkt verwenden, sieht die .filenesting.json Datei ähnlich der folgenden Datei aus:
Konzentrieren wir uns auf den Knoten dependentFileProviders und seine untergeordneten Knoten. Jeder untergeordnete Knoten ist ein Regeltyp, den Visual Studio zum Schachteln von Dateien verwenden kann. Beispielsweise ist der gleiche Dateiname, aber mit einer anderen Erweiterung eine Art Regel. Die verfügbaren Regeln sind:
extensionToExtension: Verwenden Sie diese Art von Regel, um file.js unter file.ts zu verschachteln
fileSuffixToExtension: Verwenden Sie diesen Regeltyp, um file-vsdoc.js unter file.js zu verschachteln.
addedExtension: Verwenden Sie diesen Regeltyp, um file.html.css unter file.html zu schachteln
pathSegment: Verwenden Sie diesen Regeltyp zum Schachteln von jquery.min.js unter jquery.js
allExtensions: Verwenden Sie diesen Regeltyp zum Schachteln von Dateien.* unter file.js
fileToFile: Verwenden Sie diesen Regeltyp, um bower.json unter
.bowerrczu verschachteln.
Der extensionToExtension-Anbieter
Mit diesem Anbieter können Sie Dateischachtelungsregeln mithilfe bestimmter Dateierweiterungen definieren. Betrachten Sie das folgenden Beispiel:
file.js wird aufgrund der ersten ExtensionToExtension-Regel unter file.ts geschachtelt.
file.js ist nicht unter file.tsx geschachtelt, weil
.tsvor.tsxin den Regeln vorkommt und es nur ein übergeordnetes Element geben kann.light.css ist unter light.sass aufgrund der zweiten extensionToExtension-Regel geschachtelt.
home.html wird unter home.md geschachtelt, weil die dritte ExtensionToExtension-Regel dies erfordert.
Der FileSuffixToExtension-Anbieter
Dieser Anbieter funktioniert genau wie der ExtensionToExtension-Anbieter , wobei der einzige Unterschied besteht, dass die Regel das Suffix der Datei anstelle der Erweiterung betrachtet. Betrachten Sie das folgenden Beispiel:
portal-vsdoc.js wird aufgrund der FileSuffixToExtension-Regel unter portal.js geschachtelt.
Jeder andere Aspekt der Regel funktioniert genauso wie extensionToExtension.
Der addedExtension-Anbieter
Dieser Anbieter schachtelt Dateien mit einer zusätzlichen Erweiterung unter der Datei ohne zusätzliche Erweiterung. Die zusätzliche Erweiterung kann nur am Ende des vollständigen Dateinamens angezeigt werden.
Betrachten Sie das folgenden Beispiel:
- file.html.css wird aufgrund der addedExtension-Regel unter file.html geschachtelt.
Hinweis
Sie geben keine Dateierweiterungen für die addedExtension Regel an. Sie gilt automatisch für alle Dateierweiterungen. Das heißt, jede Datei mit demselben Namen und derselben Erweiterung wie eine andere Datei sowie eine zusätzliche Erweiterung am Ende wird unter der anderen Datei geschachtelt. Sie können die Auswirkung dieses Anbieters nicht auf bestimmte Dateierweiterungen beschränken.
Der PathSegment-Anbieter
Dieser Anbieter schachtelt Dateien mit einer zusätzlichen Erweiterung unter einer Datei ohne zusätzliche Erweiterung. Die zusätzliche Erweiterung kann nur in der Mitte des vollständigen Dateinamens angezeigt werden.
Betrachten Sie das folgenden Beispiel:
- jquery.min.js ist aufgrund der PathSegment-Regel unter jquery.js geschachtelt.
Hinweis
Wenn Sie keine bestimmten Dateierweiterungen für die
pathSegmentRegel angeben, gilt sie für alle Dateierweiterungen. Das heißt, jede Datei mit demselben Namen und derselben Erweiterung wie eine andere Datei sowie eine zusätzliche Erweiterung in der Mitte wird unter der anderen Datei geschachtelt.Sie können die Auswirkung der
pathSegmentRegel auf bestimmte Dateierweiterungen beschränken, indem Sie sie wie folgt angeben:"pathSegment": { "add": { ".*": [ ".js", ".css", ".html", ".htm" ] } }
Der allExtensions-Anbieter
Mit diesem Anbieter können Sie Dateischachtelungsregeln für Dateien mit jeder Erweiterung, aber mit demselben Basisdateinamen definieren. Betrachten Sie das folgenden Beispiel:
- Template.cs und Template.doc werden aufgrund der AllExtensions-Regel unter Template.tt geschachtelt.
Der FileToFile-Anbieter
Mit diesem Anbieter können Sie Dateischachtelungsregeln basierend auf vollständigen Dateinamen definieren. Betrachten Sie das folgenden Beispiel:
- file.npmrc ist aufgrund der FileToFile-Regel unter package.json geschachtelt.
Regelreihenfolge
Die Sortierung ist in jedem Teil Ihrer benutzerdefinierten Einstellungsdatei wichtig. Sie können die Reihenfolge ändern, in der Regeln ausgeführt werden, indem Sie sie innerhalb des abhängigEnFileProvider-Knotens nach oben oder unten verschieben. Wenn Sie beispielsweise eine Regel haben, die file.js zum übergeordneten Element von file.ts macht, und eine andere Regel haben, die file.coffee zum übergeordneten Element von file.ts macht, bestimmt die Reihenfolge, in der sie in der Datei angezeigt werden, das Schachtelungsverhalten, wenn alle drei Dateien vorhanden sind. Da file.ts nur über ein übergeordnetes Element verfügen kann, gewinnt die Regel, die zuerst ausgeführt wird.
Die Sortierung ist auch für Regelabschnitte selbst wichtig, nicht nur für Dateien innerhalb eines Abschnitts. Sobald ein Dateipaar mit einer Dateischachtelungsregel übereinstimmt, werden andere Regeln weiter unten in der Datei ignoriert, und das nächste Dateipaar wird verarbeitet.
Schaltfläche für die Dateischachtelung
Sie können alle Einstellungen, einschließlich Ihrer eigenen benutzerdefinierten Einstellungen, über dieselbe Schaltfläche im Projektmappen-Explorer verwalten:
Erstellen projektspezifischer Einstellungen
Sie können lösungsspezifische und projektspezifische Einstellungen erstellen, indem Sie dem Projektstamm- oder Projektstammordner eine .filenesting.json Datei hinzufügen.
Sie können lösungsspezifische und projektspezifische Einstellungen durch das Kontextmenü jeder Lösung und jedes Projekts erstellen.
Lösungsspezifische und projektspezifische Einstellungen werden mit den aktiven Visual Studio-Einstellungen kombiniert. Beispielsweise verfügen Sie über eine leere projektspezifische Einstellungsdatei, der Projektmappen-Explorer schachtelt jedoch noch immer Dateien. Das Schachtelungsverhalten stammt entweder aus den projektmappenspezifischen Einstellungen oder den Visual Studio-Einstellungen. Die Rangfolge für das Zusammenführen der Einstellungen für die Dateischachtelung ist: Visual Studio > Projektmappe > Projekt.
Sie können Visual Studio anweisen, nur die lösungsspezifischen oder projektspezifischen Einstellungen zu verwenden, indem Sie den Stammknoten auf true setzen. Visual Studio beendet das Zusammenführen von Dateien auf dieser Ebene und kombiniert sie nicht mit Dateien, die höher oben in der Hierarchie sind.
Lösungsspezifische und projektspezifische Einstellungen können in die Quellcodeverwaltung eingecheckt werden, und das gesamte Team, das an der Codebasis arbeitet, kann sie freigeben.
Deaktivieren der Dateischachtelungsregeln für ein Projekt
Sie können vorhandene globale Dateischachtelungsregeln für bestimmte Lösungen oder Projekte deaktivieren, indem Sie die Entfernen-Aktion für einen Anbieter anstelle des Hinzufügens verwenden. Wenn Sie beispielsweise den folgenden Einstellungscode zu einem Projekt hinzufügen, werden alle PathSegment-Regeln , die global für dieses bestimmte Projekt vorhanden sein können, deaktiviert:
"dependentFileProviders": {
"remove": {
"pathSegment": {}
}
}