如何在使用MSBuild构建解决方案时排除指定项目?
MSBuild 构建解决方案排除指定项目的实现方法
你可以通过以下两种常用方案实现需求,均兼容VS2019对应的MSBuild版本:
方案1:使用ExcludeProjects属性直接排除指定项目
该方案适合排除项目数量少的场景,仅需在原有构建命令基础上追加/p:ExcludeProjects参数,参数值为要排除的4个项目在解决方案中的相对路径,多个项目用分号分隔即可。
修改后的命令示例如下(将示例中的项目路径替换为你实际要排除的项目路径即可):
MSBuild.exe "MyTestSolution.sln" /property:Configuration=Release /t:Rebuild /p:DefineConstants="testconstant" /p:OutputPath="C:\build" /p:ExcludeProjects="ProjectA.csproj;Src/ProjectB/ProjectB.csproj;Test/ProjectC.csproj;Common/ProjectD.csproj"
注意:填写的项目路径需和解决方案文件中存储的项目相对路径完全一致,避免匹配失败。
方案2:显式指定要构建的目标项目
该方案适合需要排除的项目数量多、保留的项目数量少的场景,直接在/t参数中指定所有需要构建的项目和对应操作即可,格式为项目名:Rebuild,多个项目用分号分隔。
命令示例如下:
MSBuild.exe "MyTestSolution.sln" /property:Configuration=Release /t:Project1:Rebuild;Project2:Rebuild;Project3:Rebuild /p:DefineConstants="testconstant" /p:OutputPath="C:\build"
注意:此处填写的项目名为解决方案中展示的项目名(不含路径和后缀),如果项目名包含空格、点等特殊字符,需要将特殊字符替换为下划线,例如项目名
My.Test App需写为My_Test_App。
验证方式
如果需要确认项目是否成功排除,可以在命令末尾追加/v:detailed参数输出详细构建日志,检查对应项目是否未进入构建流程。
内容的提问来源于stack exchange,提问作者Kylie
相关产品推荐
相关产品推荐

