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文件。

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

Microsoft.AspNetCore.AppMicrosoft.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中的项目文件的生成,以及里面常用的标签元素。
我希望这篇文章可以帮助您满足您的需求。我想收到你的反馈意见。请发布您对本文的反馈,问题或意见。

硬广专区

如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
官方网站:www.52abp.com
代码托管地址:https://gitee.com/aiabpedu
知乎专栏:https://zhuanlan.zhihu.com/52abp
微信公众号:角落的白板报
【收费的在腾讯课堂】https://ke.qq.com/course/392589?tuin=2522cdf3
youtube视频专区:http://t.cn/Ei0F2EB

【免费的在B站】https://space.bilibili.com/2954671
免费的更新慢,收费的更新快,仅此而已。就这样。

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

「好看」的人都【在看】↓↓↓

ASP.NET Core Web 项目文件介绍相关推荐

  1. 在 Azure 上部署 Asp.NET Core Web App

    在云计算大行其道的时代,当你要部署一个网站时第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core的网站呢?Azure 的 Web App ...

  2. ASP .NET Core Web MVC系列教程二:添加控制器

    系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程一:创建一个W ...

  3. ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序

    本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...

  4. ASP.NET Core Web Razor Pages系列教程:使用ASP.NET Core创建Razor Pages Web应用程序

    ASP .Net Core Razor Pages MySQL Tutorial 本系列教程翻译自微软官方教程,官方教程地址:Tutorial: Create a Razor Pages web ap ...

  5. 针对ASP.NET Core Web API的先进架构

    \ 本点要点 \\ 与传统的ASP.NET相比,ASP.NET Core的新架构提供了一些好处\\t ASP.NET Core从一开始就包含对依赖注入的支持\\t 单一职责原则简化了实施和设计.\\t ...

  6. 重温.NET下Assembly的加载过程 ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线...

    重温.NET下Assembly的加载过程 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现 ...

  7. 十分钟上线-基于函数计算开发 Restful web api asp.net core web app

    前言 这篇文章适合所有的 C# 开发新手.老鸟以及想准备学习开发 C# 的程序猿..NET Core是一个开源通用的开发框架,支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runti ...

  8. ASP.NET Core Web API 与 SSL

    SSL 一直没有真正研究过SSL,不知道下面的理解是否正确. SSL是Secure Sockets Layer的缩写,它用来保护服务器和客户端之前的通信.它是基于信任+加密的概念. 在介绍SSL的原理 ...

  9. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment(https://github.com/Essensoft/Pa ...

最新文章

  1. 谷歌大脑开源「数据增强」新招数:ImageNet准确率达85%,大神Quoc Le出品
  2. python中locals函数_Python locals()函数
  3. java tostring方法_Java程序员小伙启动项目报错,原来是使用了lombok
  4. Java web后端1 XML URI与URL HTTP Tomcat
  5. linux数据泵导入command not found_MySQL:数据库结构优化、高可用架构设计、数据库索引优化...
  6. C语言fread函数了解
  7. 一起学习C语言:C语言循环结构(三)
  8. usr bin java快捷方式_/ usr / bin / sudo必须由uid 0拥有并设置setuid位
  9. matlab中文帮助_拿走不谢,simulink,stateflow,ecoder帮助手册中英对照版首发
  10. 2018.11.08 NOIP模拟 班车(倍增+dfs+bit)
  11. 华为的JAVA面试题及答案(部分)
  12. 数据结构笔记(十一)串
  13. 将 php 转换/编译为 EXE
  14. c++ 定时器_「正点原子Linux连载」第十九章定时器按键消抖实验
  15. 【Python学习笔记】集合set
  16. atlas 1.1.0 的本地开发文档(编译)
  17. 怎样完成一次比较漂亮的晋升面试演讲
  18. java 生成缩略图_java实现图片生成缩略图
  19. 【最短路 搜索】JZOJ_4246 san
  20. 计算机网络实验三 路由协议的配置

热门文章

  1. jdk 1结尾和2结尾_“与巢一起工作”的结尾对您意味着什么
  2. 如何从Internet Explorer或Edge迁移到Chrome(以及为什么要迁移)
  3. imessage_如何在iPhone和iPad上的iMessage组中提及某人
  4. 免去架构算法调优,如何让你的系统风驰电掣?|图说
  5. Wpf控件ListBox使用实例2
  6. Android开发入门之学习笔记(三):程序窗口的布局
  7. Google上面关于cas的文章
  8. 试着翻译24小时自学SQL第四版
  9. .NET 6 攻略大全(二)
  10. AntDesign Pro + .NET Core 实现基于JWT的登录认证