如何使用 msbuild 或 Roslyn 在给定项目中构建源代码?

How to build just the source code in the given project using msbuild or Roslyn?

我有一个项目依赖于许多其他项目。我对该项目的源代码进行了更改。如果我在该项目上 运行 msbuild,它将遍历其所有依赖项项目。它不会到达实际的编译,因为它们没有改变,但仍然需要相当长的时间才能弄清楚那里不需要做任何事情。

我正在寻找一种方法来检查给定项目中的代码是否可以编译,而无需在其他项目上花费任何额外的周期。我知道 Roslyn 可以做到 - 编辑并继续在调试期间做到这一点。

我自己怎么办?使用 msbuild(如果有隐藏的方法)或使用 Roslyn API.

您可以使用 BuildProjectReferences 属性 来避免构建引用项目

dotnet build --project path_to_project.csproj /p:BuildProjectReferences=false

或者,如果您想始终避免构建引用项目,请将此属性 添加到项目文件

<PropertyGroup>
    <BuildProjectReferences>false</BuildProjectReferences>
</PropertyGroup>