.csproj文件有什么作用?

Mir*_*cea 58 c# projects visual-studio

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

Chr*_*isF 50

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

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

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

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

每个程序集都会得到一个.csproj文件,而.sln(解决方案文件)将构成项目的所有程序集连接在一起.


Aks*_*hot 13

针对 .NET 5 进行了更新

这是我们应用程序中最重要的文件。它告诉 .NET 如何构建项目。

所有 .NET 项目都在.csproj文件中列出了它们的依赖项。如果您以前使用过 JavaScript,请将其视为 package.json 文件。不同之处在于,这是一个 XML 文件,而不是 JSON。当您运行 dotnet Restore 时,它​​会使用此文件来确定要下载哪些 NuGet 包并将其复制到项目文件夹。

.csproj文件还包含 .NET 工具构建项目所需的所有信息。它包括正在构建的项目的类型(控制台、Web、桌面等)、该项目的目标平台以及对其他项目或第三方库的任何依赖项。

从 .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>
Run Code Online (Sandbox Code Playgroud)

注意:如果您使用的是 Visual Studio,该文件将被隐藏,但您可以右键单击该项目并选择编辑项目文件。


Bre*_*ent 8

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


Rah*_*hul 7

取自什么是.csproj文件

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

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