为什么 Roslyn 解决方案中的 .csproj 文件不引用 C# 文件?

Why does a .csproj file in Roslyn solution not reference the C# files?

我开始尝试使用 Roslyn,并且 运行 遇到了我无法理解构建 Roslyn 的 Visual Studio 解决方案如何工作的情况。

有一个名为 "CodeAnalysis.csproj" 的 C# 项目文件。在我从 GitHub 下载的文件中,它位于文件 "E:\GitHub\dotnet\roslyn\src\Compilers\Core\Portable\CodeAnalysis.csproj" 中。在 Visual Studio 解决方案资源管理器中,它位于编译器 - 核心 - CodeAnalysis。

据我所知,这个项目编译了数百个 C# 源文件,其中大部分在大约 30 个子文件夹中。但我的问题是我在 .csproj 文件中看不到任何指示它应该编译所有这些 C# 源文件的内容。

我猜我遗漏了一些明显的东西,一些暗示 "build everything in this folder and all sub-folders" 的 .csproj 文件的新功能,但我就是看不到它。

是的,您错过了一些东西。这是一个 .net 标准项目。这些项目不引用 included 文件,而是引用 excluded.

您可以创建一个新的 .net Standard 项目并添加 classes。您会看到,classes 未在 .csproj 文件中引用。如果您使用 Visual Studio,您可以在解决方案资源管理器中右键单击 class,然后选择 "Exclude From Project",这将在 .csproj 文件中创建一个引用 remove属性。