dotnet build project.csproj仍在搜索目录

时间:2017-12-01 00:12:42

标签: .net-core

当目录树中有其他项目文件时,我正在尝试使用dotnet构建一个项目。

根据documentation

  

参数
  项目
  要构建的项目文件。如果未指定项目文件,则为MSBuild   在当前工作目录中搜索具有文件的文件   以proj结尾并使用该文件的扩展名。

然而,当我跑步时

dotnet build project.csproj -c Release

递归搜索所有目录,并尝试构建找到.csproj文件的所有项目。

就我而言,根目录中有project.csproj。五个目录级别下来,还有另外三个.csproj文件。这是文件的样子,名称改变了:

  1. ./ project.csproj
  2. ./ scriptlibrary /项目/ PROJECT1 / DIR1 / DIR2 / project2.csproj
  3. ./ scriptlibrary /项目/ PROJECT1 / DIR1 / DIR3 / project3.csproj
  4. ./ scriptlibrary /项目/ PROJECT1 / DIR1 / dir4 / project4.csproj
  5. 当我跑步时

    dotnet build project.csproj -c Release
    

    它找到其他.csproj文件并尝试构建它们。 project.csproj与其他项目没有依赖关系。

    这似乎与文档不一致。在命令行中,我可以做什么来将构建约束到我指定的单个项目?

1 个答案:

答案 0 :(得分:0)

实际上,这个问题有两种可能的解决方案:

  1. 重构您的文件夹结构,以从子文件夹中排除项目。这将需要您的项目新targetViewController

    ./ 主要 /project.csproj

    ./ scriptlibrary /项目/ PROJECT1 / DIR1 / DIR2 / project2.csproj ./scriptlibrary/Projects/project1/dir1/dir3/project3.csproj ./scriptlibrary/Projects/project1/dir1/dir4/project4.csproj

  2. 如果您不能这样做,可以通过将.sln属性项添加到<DefaultItemExcludes>中来排除编译中的子文件夹:

    project.csproj

    这将强制编译器从编译中排除指定的子文件夹,而其他项目将不会在project.csproj的范围内编译