使用dotnet build构建解决方案时排除嵌套文件夹内项目的方法
构建解决方案时排除特定嵌套项目的方法
问题描述
项目目录结构如下:
Main Folder --ProjA Folder --A Folder --A.csproj --Aa Folder -Aa.csproj -- B Folder --B.csproj | | continues
构建解决方案时需要排除ProjA\A文件夹下的项目,由于需构建的项目较多,无法逐个指定要构建的项目,询问是否有办法排除嵌套文件夹内的项目文件进行构建。
尝试了以下命令,但出现错误:
dotnet build Emp.sln /p:Configuration=Release -p excludeProjects= "C:\Main\ProjA\A\A.csproj" -o C:\Main\Output
错误信息:
Syntax error
The syntax of the command is incorrect.
MSBuild version 17.6.3+07e294721 for .NET
MSBUILD : error MSB1008: Only one project can be specified.
解决方法
修正命令写法
你的命令错误在于excludeProjects参数的等号后多了空格,且使用绝对路径容易引发识别问题。正确的命令应该使用相对路径(相对于解决方案文件的位置),并且参数格式要规范:
dotnet build Emp.sln /p:Configuration=Release /p:ExcludeProjects="ProjA\A\A.csproj" -o C:\Main\Output
批量排除项目
如果需要排除多个项目,用分号分隔路径或项目名称即可:
dotnet build Emp.sln /p:Configuration=Release /p:ExcludeProjects="ProjA\A\A.csproj;ProjB\X\X.csproj" -o C:\Main\Output
简化排除方式
如果项目名称唯一,也可以直接使用项目文件名(不带.csproj扩展名)来排除,写法更简洁:
dotnet build Emp.sln /p:Configuration=Release /p:ExcludeProjects="A" -o C:\Main\Output
内容的提问来源于stack exchange,提问作者AMDI
相关产品推荐
相关产品推荐

