Author Image

admin

2周前 80

ASP.NET Core 3.1后项目文件与.NET Core2.X的变化异同说明

导航:

在这个简短的视频中,我们将讨论ASP.NET Core 3.0后项目文件中发生的更改。

虽然我们的.NET 6的项目,但是涉及到这里的变化其实从ASP.NET Coe 3.x就变化了。

如果您想知道项目文件的详细说明,请观看 ASP.NET MVC Core 基础教程的第四章节。

项目文件扩展名您使用的编程语言确定项目文件的扩展名。如果C#是编程语言,则项目文件扩展名为.csproj。如果是Visual Basic,则为.vbproj。编辑项目文件

若要编辑项目文件,请在解决方案资源管理器中右键单击项目名称,然后从上下文菜单中选择“编辑项目文件”,

或者双击项目名称

ASP.NET Core 3.1项目文件

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>

ASP.NET Core 2.2项目文件

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <!--<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>-->
  <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
  </PropertyGroup>
</Project>

ASP.NET Core 3.x项目文件中的新变化

在顶部,我们引用了Microsoft.NET.Sdk.Web。它这没有从ASP.NET Core 2.0更改为3.1。

TargetFramework节点指定要定位的框架。由于我们使用的是.NET Core 3.1,因此值为netcoreapp3.1。此值简称为Target Framework MonikerTFM

如果要调整为其他框架版本,请在.csproj文件中或通过项目属性窗口手动进行更改。

在.NET Core 2.2项目文件中,我们还需要手动对综合单元包进行引用(即Microsoft.AspNetCore.App)。


<ItemGroup>
  <PackageReference Include = "Microsoft.AspNetCore.App" />
</ItemGroup>

在.NET Core 3.0开始中,使用框架引用关系来替换综合元管理包,即(Microsoft.AspNetCore.App)。我们可以在解决方案资源管理器中看到对meta包的Framework引用。

ASP.NET Core 3.x中对 Microsoft.AspNetCore.App 的调整

如果你使用过 ASP.NET Core 2.X 那么应该知道在我们的项目文件有引入一个 NuGet 包,

Microsoft.AspNetCore.App

在 ASP.NET Core 3.0 开始,Microsoft.AspNetCore.App 包不在需要由项目文件引入,而是通过.NET Core sdk 包来直接进行管理,我们可以在项目的依赖性中看到他们,见如图 17.12:

通过下方的属性中的路径窗口,可以看到它所在位置,如果您看不见属性窗口,可以选择Microsoft.AspNetCore.App后按 F4 键,将它调出来。

然后我们复制路径中的地址: C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\6.0.0-preview.2.21154.6data\FrameworkList.xml

,打开该文件,信息如如图 17.13:

除了Microsoft.AspNetCore.App包以外,ASP.NET 开发团队,还删除了提供第三方媒体登录的软件包,这也是为什么从3.X我们需要单独安装一些额外的nuget包了。

例如 EntityFrameworkCore 程序包从3.X开始就需要手动安装了。

当然还有其他软件包也删除了。

访问以下链接以查看已删除软件包的完整列表。

https://github.com/aspnet/AspNetCore/issues/3755

图3.2

如果我在项目中需要这些软件包怎么办。例如,我想要EntityFramework Core进行数据访问,那么如何包括它呢?

使用nuget软件包管理器安装所需的软件包,软件包参考将自动包含在项目文件中,如下所示。

<ItemGroup>
  <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.0-preview.2.21154.2" />
</ItemGroup>

您可以通过使用nuget软件包管理器或手动编辑项目文件来安装nuget软件包。