78

通常,C# 项目有一个与之关联的 .csproj 文件。那个文件是干什么用的?它包含哪些数据?

4

5 回答 5

66

基本上 .csproj 文件包含项目中的文件列表,以及对系统程序集的引用等。

有一大堆设置 - Visual Studio 版本、项目类型、程序集名称、应用程序图标、目标文化、安装 URL、...

构建项目所需的一切。虽然您可以假设您需要当前文件夹中的所有内容,但拥有一个明确的列表可以让您在磁盘和项目中逻辑地组织它们,以便您可以更轻松地找到所需的文件。

它只是 XML,因此您可以在您喜欢的文本编辑器中打开它并查看。

每个程序集都有一个 .csproj 文件,而 .sln(解决方案文件)将构成项目的所有程序集联系在一起。

于 2011-06-22T20:49:07.853 回答
11

该文件包含要作为项目一部分编译的所有文件的列表,以及其他选项,如项目名称、发布和调试配置、编译选项等。

于 2011-06-22T20:49:34.270 回答
8

取自什么是 .csproj 文件?

“.csproj”是 Visual Studio .NET C# 项目文件扩展名。该文件将包含有关该项目中包含的文件、该项目中使用的程序集、项目 GUID 和项目版本等的信息。该文件与您的项目相关。会在我们创建的时候自动生成

“.sln”是用于在 Visual Studio 中组织项目的结构。它包含 .sln(基于文本、共享)和 .suo(二进制、用户特定的解决方案选项)文件中的项目状态信息。我们可以在一个解决方案中添加多个项目。

于 2011-06-22T21:02:28.770 回答
4

为 .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,此文件将被隐藏,但您可以右键单击项目并选择编辑项目文件。

于 2021-01-13T09:48:33.860 回答
1

它包含有关项目中使用的所有文件、使用的程序集(包括其他提供的程序集的路径)、输出类型、程序集名称等信息。因此,通过打开此 xml,您可以在一个下找到所有信息屋顶。

于 2012-08-10T11:15:19.770 回答