前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《从零开始学ASP.NET CORE MVC》:ASP.NET Core Web 项目文件(四)

《从零开始学ASP.NET CORE MVC》:ASP.NET Core Web 项目文件(四)

作者头像
角落的白板报
发布2019-05-05 14:54:20
1.3K0
发布2019-05-05 14:54:20
举报
文章被收录于专栏:角落的白板报角落的白板报

ASP.NET Core Web 项目文件

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

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

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

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

由文件系统来确定哪些文件和文件夹属于项目。在项目的根目录中存在的所有文件和文件夹都是属于项目的一部分,将显示在解决方案资源管理器中。

当您在添加文件或文件夹时,该文件或文件夹将会变成项目的一部分,会立即显示在解决方案资源管理器中。 同样,当您在解决方案下的任何文件夹中删除文件或文件夹时,该已删除的文件或文件夹不再是项目的一部分,会立即从解决方案资源管理器中不再显示出来。

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

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

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

代码语言:javascript
复制

<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>

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包。

代码语言:javascript
复制
Microsoft.AspNetCore.App
Microsoft.AspNetCore.Razor.Design

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

Microsoft.AspNetCore.App里面包含了ASP.NET Core 2.2及更高版本和Entity Framework Core 2.2及更高版本的所有组件。

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

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

我们将在即将发布的视频中详细讨论metapackage和隐式版本。

Microsoft.AspNetCore.Razor.Design:此软件包包含对Razor的MSBuild支持,并由Microsoft.AspNetCore.App 的metapackage包引用。

摘要

在本文中,我尝试解释了在ASP.NET Core中的项目文件的生成,以及里面常用的标签元素。 我希望这篇文章可以帮助您满足您的需求。我想收到你的反馈意见。请发布您对本文的反馈,问题或意见。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 角落的白板报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在本视频中,我们将探索并了解asp.net core项目文件。 我们使用C#作为编程语言,因此项目文件具有.csproj扩展名。
    • 摘要
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档