Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Файлы фильтра решений — это ФАЙЛЫ JSON с расширением .slnf, указывающие, какие проекты следует создавать или загружать из всех проектов в решении. Начиная с MSBuild 16.7, можно вызвать MSBuild в файле фильтра решения, чтобы создать решение с включенной фильтрацией.
Примечание.
Файл фильтра решения уменьшает набор проектов, загруженных или созданных и упрощающих формат. Файл решения по-прежнему необходим.
Создание фильтра решения из командной строки
Создание файла фильтра решения из командной строки использует точно тот же синтаксис, что и создание файла решения. Укажите файл фильтра решения вместо решения для сборки с включенной фильтрацией, как показано ниже.
msbuild [options] solutionFilterFile.slnf
Вы также можете добавлять переключатели и дополнительные свойства как обычные. См. ссылку командной строки MSBuild. Эта команда создает отфильтрованные проекты и все проекты, от которые они зависят. При создании фильтра решения из командной строки MSBuild автоматически следует зависимостям. Он создает проект, если он указан в фильтре или ссылается на созданный проект.
Файлы фильтрации решений
Visual Studio можно использовать для работы с файлами фильтра решений. Открытие фильтра решения в Visual Studio отображает выгрузочные проекты, а также загруженные проекты и предоставляет возможность загрузки дополнительных проектов для их создания. Вы можете загрузить все проекты, от которые зависит исходный проект или проекты, а также от сборки, но это не обязательно. См. отфильтрованные решения.
Фильтр решения не должен находиться в той же папке, что и решение. Путь к файлу решения относится к расположению файла фильтра решения, но пути к каждому проекту относятся к самому файлу решения и должны соответствовать путям проекта в файле решения. В следующем примере показано использование относительных путей:
{
"solution": {
"path": "..\\..\\Documents\\GitHub\\msbuild\\MSBuild.sln",
"projects": [
"src\\Build.OM.UnitTests\\Microsoft.Build.Engine.OM.UnitTests.csproj"
]
}
}
Обратные косые скобки в путях должны быть двойными, так как они экранируются.
Примечание.
В случае, если вы используете формат файла решения .slnx, поддерживаемый в MSBuild 17.12 и более поздних версиях, .slnx файл имеет приоритет над файлом .slnf.
Пример
Ниже приведен пример отфильтрованного решения в Visual Studio:
В этом решении ClassLibrary1 используется ProjectA и ProjectB, а классLibrary1 — в качестве ссылки на проект.
Ниже приведен файл фильтра решения, создаваемый Visual Studio:
{
"solution": {
"path": "MyApplication.sln",
"projects": [
"MyApplication\\MyApplication.csproj",
"ProjectA\\ProjectA.csproj"
]
}
}
В этом примере при сборке с включенной фильтрацией (с помощью команды MSBuild [options] MyFilter.slnf), MSBuild создает MyApplication и ProjectA, так как они явно перечислены в файле фильтра решения. В рамках сборки ProjectA MSBuild создает ClassLibrary1, так как ProjectA зависит от него. ProjectB не построен. (В этом обсуждении предполагается чистая сборка. Если проекты были созданы ранее, обычные правила применяются для пропуска проектов, которые уже up-to-date.)