这篇文章用于了解 ASP.NET Core 项目文件。 我们使用 C#作为编程语言,因此项目文件具有.csproj 扩展名。
如果您使用过以前版本的 ASP.NET ,那么您可能对此文件非常熟悉,但此文件中包含的格式和内容在 asp.ne Core 中发生了很大变化。
一个重要的变化是,项目文件不包含任何文件夹或文件引用。
简单解释后的意思就是。在以前的 ASP.NET 中,当我们使用解决方案资源管理器向项目添加文件或文件夹时,项目文件中会包含对该文件或文件夹的引用。但是在 ASP.NET Core 中,项目文件不包含任何文件夹或文件引用。
由文件系统来确定哪些文件和文件夹属于项目。在项目的根目录中存在的所有文件和文件夹都是属于项目的一部分,将显示在解决方案资源管理器中。 当您在添加文件或文件夹时,该文件或文件夹将会变成项目的一部分,会立即显示在解决方案资源管理器中。 同样,当您在解决方案下的任何文件夹中删除文件或文件夹时,该已删除的文件或文件夹不再是项目的一部分,会立即从解决方案资源管理器中不再显示出来。
另外我们与项目文件的工作方式也发生了变化。在以前版本的 ASP.NET 中,为了能够编辑项目文件,我们首先要卸载项目,编辑并保存项目文件,然后重新加载项目。而在 ASP.NET Core 中,我们可以编辑项目文件而无需卸载项目。
在解决方案中,右键单击项目名称并选择"编辑 EmployeeManagement.csproj" 文件。
这将在编辑器中打开.csproj 文件。
TargetFramework:顾名思义,此元素是用于指定应用程序的目标框架,即您希望为应用程序提供的 API程序集。为了指定目标框架,我们使用了一个名为 Target Framework Moniker(TFM)的东西。正如您在上面的示例中所看到的,我们的应用程序针对 TargetFramework 的值为 netcoreapp3.1。netcoreapp3.1 是.NET Core 3.1 的 Moniker。当我们创建此应用程序时,我们从新建项目中下拉列表中选择了“.NET Core 3.1”作为目标框架。
AspNetCoreHostingModel:此元素指定应如何托管 ASP.NET Core 应用程序。它表示程序应该托管 InProcess(进程内)还是 OutOfProcess(进程外)。 InProcess 的值指定我们想要使用进程内托管模型,即在 IIS 工作进程(w3wp.exe)中托管我们的 ASP.NET Core 应用程序。 OutOfProcess 的值指定我们要使用进程外托管模型,将 Web 请求转发到运行 Kestrel 服务器的后端 ASP.NET Core 应用程序。
PackageReference:顾名思义,此元素用于包含对为您的应用程序安装的所有 NuGet 包的引用。