SolutionFilterBuilder 1.0.3

dotnet tool install --global SolutionFilterBuilder --version 1.0.3                
此包包含一个可以从 shell/命令行调用的 .NET 工具
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local SolutionFilterBuilder --version 1.0.3                
此包包含一个可以从 shell/命令行调用的 .NET 工具
#tool dotnet:?package=SolutionFilterBuilder&version=1.0.3                
nuke :add-package SolutionFilterBuilder --version 1.0.3                

SolutionFilterBuilder

SolutionFilterBuilder 是一个用于从 Visual Studio 解决方案创建解决方案过滤器的 DotNet 工具,由 MSBuild 项目属性控制。

Build Nuget

轻松创建解决方案过滤器,以避免加载不必要的文件,并随时更新过滤器以反映解决方案的变化。

该工具使用 MSBuild 逻辑来控制哪些项目应包含在过滤器中,为您提供了高级别的灵活性。

所有将属性 IncludeInSolutionFilter 设置为 true 的项目都包含在指定的过滤器中,以及它们的所有引用项目。还提供了一个 SolutionFilterName 属性,以便能够根据过滤器名称编写 MSBuild 条件。

您可以通过将 IncludeInSolutionFilter 属性添加到项目文件中为单个项目标记。

  • 在任何过滤器中包含项目和所有引用
    <IncludeInSolutionFilter>true</IncludeInSolutionFilter>
  • 仅当过滤器名称为 Setup.slnf 时包含项目
    <IncludeInSolutionFilter Condition="'$(SolutionFilterName)'=='Setup'">true</IncludeInSolutionFilter>

您可以通过在 Directory.Build.targets 文件中添加条件属性来约定地包含多个项目

  • Test.slnf 中包含所有测试项目
    <IncludeInSolutionFilter Condition="'$(IncludeInSolutionFilter)'=='' AND '$(IsTestProject)'=='True' AND '$(SolutionFilterName)'=='Test'">true</IncludeInSolutionFilter>
  • Something.slnf 中包含所有以 Something 结尾的项目
    <_IsSomeProject>$(MSBuildProjectName.ToUpperInvariant().EndsWith("SOMETHING"))</_IsSomeProject>
    <IncludeInSolutionFilter Condition="'$(IncludeInSolutionFilter)'=='' AND $(_IsSomeProject) AND '$(SolutionFilterName)'=='Something'">true</IncludeInSolutionFilter>
  • Apps.slnf 中包含所有可执行文件
     <IncludeInSolutionFilter Condition="'$(IncludeInSolutionFilter)'=='' AND '$(OutputType)'=='Exe' AND '$(IsTestProject)'!='true' AND '$(SolutionFilterName)'=='Apps'">true</IncludeInSolutionFilter>

安装

dotnet tool install solutionfilterbuilder -g

用法

build-slnf [options]
选项
  -i, --input  <input>              The path to the solution file that is the source for the filter.
                                    If no solution is specified, it tries to find a single one in the current directory.
  -o, --output <output> (REQUIRED)  The name of the solution filter that is created.
                                    An existing file will be overwritten without confirmation.
  --version                         Show version information
  -?, -h, --help                    Show help and usage information
示例

从当前目录的解决方案构建解决方案过滤器 Test.sln

build-slnf -o Test 
产品 兼容的和额外的计算目标框架版本。
.NET net8.0兼容。 net8.0-android已计算。 net8.0-browser已计算。 net8.0-ios已计算。 net8.0-maccatalyst已计算。 net8.0-macos已计算。 net8.0-tvos已计算。 net8.0-windows已计算。
兼容的目标框架
包含的目标框架(在包中)
了解有关目标框架.NET标准的更多信息。

此包无依赖项。

版本 下载 最后更新
1.0.3 1,513 12/1/2023
1.0.2 388 6/22/2023
1.0.1 108 6/21/2023
1.0.0 220 2/18/2023