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.
Lösungsfilterdateien sind JSON-Dateien mit der Erweiterung .slnf, die angeben, welche Projekte aus allen Projekten in einer Lösung erstellt oder geladen werden sollen. Ab MSBuild 16.7 können Sie MSBuild in der Lösungsfilterdatei aufrufen, um die Lösung mit aktivierter Filterung zu erstellen.
Hinweis
Die Lösungsfilterdatei reduziert die Gruppe von Projekten, die geladen oder erstellt werden, und vereinfacht das Format. Die Lösungsdatei ist weiterhin erforderlich.
Erstellen eines Lösungsfilters über die Befehlszeile
Beim Erstellen einer Lösungsfilterdatei aus der Befehlszeile wird genau die gleiche Syntax wie beim Erstellen einer Lösungsdatei verwendet. Geben Sie die Lösungsfilterdatei anstelle der Lösung an, die mit aktivierter Filterung erstellt werden soll, wie folgt:
msbuild [options] solutionFilterFile.slnf
Sie können auch Schalter und zusätzliche Eigenschaften wie gewohnt anfügen. Informationen finden Sie in der MSBuild-Befehlszeilenreferenz. Dieser Befehl erstellt die gefilterten Projekte und alle Projekte, von deren Abhängigkeit sie abhängen. Beim Erstellen eines Lösungsfilters über die Befehlszeile folgt MSBuild automatisch Abhängigkeiten. Es erstellt ein Projekt, wenn es im Filter angegeben oder von einem Projekt referenziert wird, das erstellt wird.
Lösungsfilterdateien
Sie können Visual Studio verwenden, um mit Lösungsfilterdateien zu arbeiten. Beim Öffnen eines Lösungsfilters in Visual Studio werden die entladenen Projekte sowie die geladenen Projekte angezeigt, und Sie haben die Möglichkeit, weitere Projekte zu laden, um sie zum Erstellen auszuwählen. Sie können alle Projekte laden, von denen das anfängliche Projekt oder die Projekte ebenfalls erstellt werden müssen, aber nicht erforderlich sind. Siehe Gefilterte Lösungen.
Der Lösungsfilter muss sich nicht im selben Ordner wie die Lösung befinden. Der Pfad zur Lösungsdatei ist relativ zum Speicherort der Lösungsfilterdatei, aber die Pfade zu jedem Projekt sind relativ zur Projektmappendatei selbst und sollten mit den Projektpfaden in der Lösungsdatei übereinstimmen. Im folgenden Beispiel wird die Verwendung relativer Pfade veranschaulicht:
{
"solution": {
"path": "..\\..\\Documents\\GitHub\\msbuild\\MSBuild.sln",
"projects": [
"src\\Build.OM.UnitTests\\Microsoft.Build.Engine.OM.UnitTests.csproj"
]
}
}
Die umgekehrten Schrägstriche in Pfaden müssen verdoppelt werden, da sie escaped sind.
Hinweis
Wenn Sie das .slnx Lösungsdateiformat verwenden, das in MSBuild 17.12 und höher unterstützt wird, hat die .slnx Datei Vorrang vor der .slnf Datei.
Beispiel
Hier ist ein Beispiel für eine gefilterte Lösung in Visual Studio:
In dieser Lösung wird ClassLibrary1 sowohl von ProjectA als auch von ProjectB verwendet, sodass ClassLibrary1 als Projektverweis aufgeführt wird.
Hier sehen Sie die Lösungsfilterdatei, die Visual Studio generiert:
{
"solution": {
"path": "MyApplication.sln",
"projects": [
"MyApplication\\MyApplication.csproj",
"ProjectA\\ProjectA.csproj"
]
}
}
Wenn Sie in diesem Beispiel mit aktivierter Filterung (mithilfe des Befehls MSBuild [options] MyFilter.slnf) erstellen, erstellt MSBuild MyApplication und ProjectA, da sie explizit in der Lösungsfilterdatei aufgeführt sind. Im Rahmen der Erstellung von ProjectA erstellt MSBuild ClassLibrary1, da ProjectA davon abhängt. ProjectB ist nicht erstellt. (Bei dieser Diskussion wird ein sauberer Build vorausgesetzt. Wenn Projekte zuvor erstellt wurden, gelten die üblichen Regeln für das Überspringen von Projekten, die bereits up-to-date sind.)