通常,C# 项目有一个与之关联的 .csproj 文件。那个文件是干什么用的?它包含哪些数据?
5 回答
基本上 .csproj 文件包含项目中的文件列表,以及对系统程序集的引用等。
有一大堆设置 - Visual Studio 版本、项目类型、程序集名称、应用程序图标、目标文化、安装 URL、...
构建项目所需的一切。虽然您可以假设您需要当前文件夹中的所有内容,但拥有一个明确的列表可以让您在磁盘和项目中逻辑地组织它们,以便您可以更轻松地找到所需的文件。
它只是 XML,因此您可以在您喜欢的文本编辑器中打开它并查看。
每个程序集都有一个 .csproj 文件,而 .sln(解决方案文件)将构成项目的所有程序集联系在一起。
该文件包含要作为项目一部分编译的所有文件的列表,以及其他选项,如项目名称、发布和调试配置、编译选项等。
“.csproj”是 Visual Studio .NET C# 项目文件扩展名。该文件将包含有关该项目中包含的文件、该项目中使用的程序集、项目 GUID 和项目版本等的信息。该文件与您的项目相关。会在我们创建的时候自动生成
“.sln”是用于在 Visual Studio 中组织项目的结构。它包含 .sln(基于文本、共享)和 .suo(二进制、用户特定的解决方案选项)文件中的项目状态信息。我们可以在一个解决方案中添加多个项目。
为 .NET 5 更新
这是我们应用程序中最重要的文件。它告诉 .NET 如何构建项目。
.csproj
所有 .NET 项目都在文件中列出了它们的依赖项。如果您以前使用过 JavaScript,请将其视为 package.json 文件。不同之处在于,这是一个 XML 文件,而不是 JSON。当您运行 dotnet restore 时,它会使用此文件来确定要下载哪些 NuGet 包并将其复制到项目文件夹。
该.csproj
文件还包含 .NET 工具构建项目所需的所有信息。它包括正在构建的项目的类型(控制台、Web、桌面等)、该项目的目标平台以及对其他项目或第 3 方库的任何依赖项。
从 .NET 5 开始,进行了一些重大更改以使该文件更易于阅读和维护,如下所列。
- 在旧版本的 .NET 中,项目中的每个文件都必须在
.csproj
文件中列出。现在它们被自动包含和编译。** - 以前,GUID 无处不在。现在它们很少使用了。
- 包含 DLL 文件的路径,但从 .NET 5 开始,您无需指定磁盘上的路径。
例子:
<!-- Sdk attribute specifies the type of project, which is web. -->
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<!-- TargetFramework is the framework this project will be using, which in this case is .NET 5. -->
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<!-- PackageReference references the NuGet packages. -->
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
</ItemGroup>
</Project>
注意:如果您使用的是 Visual Studio,此文件将被隐藏,但您可以右键单击项目并选择编辑项目文件。
它包含有关项目中使用的所有文件、使用的程序集(包括其他提供的程序集的路径)、输出类型、程序集名称等信息。因此,通过打开此 xml,您可以在一个下找到所有信息屋顶。