欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET Core Web 项目文件

程序员文章站 2023-11-21 15:46:04
在本节中,我们将探索并了解 asp.net core 项目文件。 我们使用 C#作为编程语言,因此项目文件具有.csproj 扩展名。 如果您使用过以前版本的 ASP.NET,那么您可能对此文件非常熟悉,但此文件中包含的格式和内容在 asp.ne Core 中发生了很大变化。 一个重要的变化是,项目 ......

在本节中,我们将探索并了解 asp.net core 项目文件。 我们使用 c#作为编程语言,因此项目文件具有.csproj 扩展名。

如果您使用过以前版本的 asp.net,那么您可能对此文件非常熟悉,但此文件中包含的格式和内容在 asp.ne core 中发生了很大变化。

一个重要的变化是,项目文件不包含任何文件夹或文件引用。

简单解释后的意思就是。在以前的 asp.net 中,当我们使用解决方案资源管理器向项目添加文件或文件夹时,项目文件中会包含对该文件或文件夹的引用。但是在 asp.net core 中,项目文件不包含任何文件夹或文件引用。

由文件系统来确定哪些文件和文件夹属于项目。在项目的根目录中存在的所有文件和文件夹都是属于项目的一部分,将显示在解决方案资源管理器中。 当您在添加文件或文件夹时,该文件或文件夹将会变成项目的一部分,会立即显示在解决方案资源管理器中。 同样,当您在解决方案下的任何文件夹中删除文件或文件夹时,该已删除的文件或文件夹不再是项目的一部分,会立即从解决方案资源管理器中不再显示出来。

另外我们与项目文件的工作方式也发生了变化。在以前版本的 asp.net 中,为了能够编辑项目文件,我们首先要卸载项目,编辑并保存项目文件,然后重新加载项目。而在 asp.net core 中,我们可以编辑项目文件而无需卸载项目。

在解决方案中,右键单击项目名称并选择“编辑 studentmanagement.csproj” 文件。

ASP.NET Core Web 项目文件

这将在编辑器中打开.csproj 文件。

<project sdk="microsoft.net.sdk.web">
  <propertygroup>
    <targetframework>netcoreapp2.2</targetframework>
    <aspnetcorehostingmodel>inprocess</aspnetcorehostingmodel>
  </propertygroup>
  <itemgroup>
    <packagereference include="microsoft.aspnetcore.app" />
    <packagereference include="microsoft.aspnetcore.razor.design" version="2.2.0" privateassets="all" />
  </itemgroup>
</project>

c#

targetframework:顾名思义,此元素是用于指定应用程序的目标框架,即您希望为应用程序提供的 apid 程序集。为了指定目标框架,我们使用了一个名为 target framework moniker(tfm)的东西。正如您在上面的示例中所看到的,我们的应用程序针对 targetframework 的值为 netcoreapp2.2。netcoreapp2.2 是.net core 2.2 的 moniker。当我们创建此应用程序时,我们从新建项目中下拉列表中选择了**.net core 2.2**作为目标框架。

aspnetcorehostingmodel:此元素指定应如何托管 asp.net core 应用程序。它表示程序应该托管 inprocess(进程内)还是 outofprocess(进程外)。 inprocess 的值指定我们想要使用进程内托管模型,即在 iis 工作进程(w3wp.exe)中托管我们的 asp.net core 应用程序。 outofprocess 的值指定我们要使用进程外托管模型,将 web 请求转发到运行 kestrel 服务器的后端 asp.net core 应用程序。

我们将在即将发布的视频中详细讨论 inprocess(进程内)和 outofprocess(进程外)托管。

packagereference:顾名思义,此元素用于包含对为您的应用程序安装的所有 nuget 包的引用。在项目文件中,我们有以下 2 个 nuget 包。

microsoft.aspnetcore.app
microsoft.aspnetcore.razor.design

microsoft.aspnetcore.app:此 nuget 包称为metapackage。 metapackage 本身是没有任何的内容的,它只是包含了其他包的依赖信息。 您可以在解决方案资源管理器中的 nuget 下找到此元数据包,而 nuget 又位于**依赖项(dependencies)**下。展开元数据包时,您可以找到所有依赖项。

ASP.NET Core Web 项目文件

microsoft.aspnetcore.app里面包含了asp.net core 2.2及更高版本和entity framework core 2.2及更高版本的所有组件。

在 asp.net core 2.1 及更高版本的默认项目模板,都是会使用这个包。

请注意,metapackage 中没有版本号。 未指定版本时,sdk 会指定隐式版本。 .net core 团队建议依赖 sdk 指定的隐式版本,而不是在包引用上显式设置版本号。 如果目前还不完全清楚,请不要担心。

microsoft.aspnetcore.razor.design:此软件包包含对 razor 的 msbuild 支持,并由 microsoft.aspnetcore.app 的 metapackage 包引用。

欢迎添加个人微信号:like若所思。

欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

ASP.NET Core Web 项目文件