Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les fichiers de filtre de solution sont des fichiers JSON avec l’extension .slnf qui indiquent quels projets générer ou charger à partir de tous les projets d’une solution. À compter de MSBuild 16.7, vous pouvez appeler MSBuild sur le fichier de filtre de solution pour générer la solution avec le filtrage activé.
Remarque
Le fichier de filtre de solution réduit l’ensemble de projets chargés ou générés et simplifie le format. Le fichier solution est toujours requis.
Générer un filtre de solution à partir de la ligne de commande
La création d’un fichier de filtre de solution à partir de la ligne de commande utilise exactement la même syntaxe que la génération d’un fichier de solution. Spécifiez le fichier de filtre de solution au lieu de la solution à générer avec le filtrage activé, comme suit :
msbuild [options] solutionFilterFile.slnf
Vous pouvez également ajouter des commutateurs et des propriétés supplémentaires normalement. Consultez Informations de référence sur la ligne de commande MSBuild. Cette commande génère les projets filtrés et tous les projets dont ils dépendent. Lors de la génération d’un filtre de solution à partir de la ligne de commande, MSBuild suit automatiquement les dépendances. Il génère un projet s’il est spécifié dans le filtre ou référencé par un projet généré.
Fichiers de filtre de solution
Vous pouvez utiliser Visual Studio pour utiliser des fichiers de filtre de solution. L’ouverture d’un filtre de solution dans Visual Studio affiche les projets déchargés ainsi que les projets chargés et vous permet de charger davantage de projets pour les sélectionner pour la génération. Vous pouvez également charger tous les projets dont dépend le projet initial ou les projets à générer, mais ce n’est pas obligatoire. Consultez solutions filtrées.
Le filtre de solution n’a pas besoin d’être dans le même dossier que la solution. Le chemin d’accès au fichier solution est relatif à l’emplacement du fichier de filtre de solution, mais les chemins d’accès à chaque projet sont relatifs au fichier solution lui-même et doivent correspondre aux chemins du projet dans le fichier solution. L’exemple suivant illustre l’utilisation de chemins relatifs :
{
"solution": {
"path": "..\\..\\Documents\\GitHub\\msbuild\\MSBuild.sln",
"projects": [
"src\\Build.OM.UnitTests\\Microsoft.Build.Engine.OM.UnitTests.csproj"
]
}
}
Les barres obliques inverses dans les chemins doivent être doublées, car elles sont échappées.
Remarque
Dans le cas où vous utilisez le format de fichier de solution .slnx, pris en charge dans MSBuild 17.12 et versions ultérieures, le fichier .slnx est prioritaire sur le fichier .slnf.
Exemple :
Voici un exemple de solution filtrée dans Visual Studio :
Capture d’écran 
Dans cette solution, ClassLibrary1 est utilisé par ProjectA et ProjectB. Par conséquent, ClassLibrary1 est répertorié comme référence de projet.
Voici le fichier de filtre de solution généré par Visual Studio :
{
"solution": {
"path": "MyApplication.sln",
"projects": [
"MyApplication\\MyApplication.csproj",
"ProjectA\\ProjectA.csproj"
]
}
}
Dans cet exemple, lorsque vous générez avec le filtrage activé (à l’aide de la commande MSBuild [options] MyFilter.slnf), MSBuild génère MyApplication et ProjectA, car ils sont explicitement répertoriés dans le fichier de filtre de solution. Dans le cadre de la création de ProjectA, MSBuild génère ClassLibrary1, car ProjectA dépend de celui-ci. ProjectB n’est pas généré. (Cette discussion suppose une build propre. Si des projets ont été générés précédemment, les règles habituelles s’appliquent pour ignorer les projets déjà up-to-date.)