ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1

.NET Core 2.1 终于发布了, 赶紧升级一下。

一. 安装SDK

首先现在并安装 SDK(64-bit

安装完毕后如果新建项目可以看到已经有2.1的选项了

二. 更新现有2.0项目到2.1

1. 修改 项目版本

右键点击解决方案管理器中的项目, 选择编辑项目名.csproj

将 <TargetFramework>netcoreapp2.0</TargetFramework> 中的2.0改为2.1,保存。

2. 将引用 Microsoft.AspNetCore.All  替换为 Microsoft.AspNetCore.App

项目依赖中找到 Microsoft.AspNetCore.All ,移除它, 在Nugget中搜索并安装 Microsoft.AspNetCore.App

注意:以下内容依旧包含在 Microsoft.AspNetCore.All 中, 而 Microsoft.AspNetCore.App 中不存在

  • Microsoft.AspNetCore.ApplicationInsights.HostingStartup
  • Microsoft.AspNetCore.AzureAppServices.HostingStartup
  • Microsoft.AspNetCore.AzureAppServicesIntegration
  • Microsoft.AspNetCore.DataProtection.AzureKeyVault
  • Microsoft.AspNetCore.DataProtection.AzureStorage
  • Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv
  • Microsoft.AspNetCore.SignalR.Redis
  • Microsoft.Data.Sqlite
  • Microsoft.Data.Sqlite.Core
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Sqlite.Core
  • Microsoft.Extensions.Caching.Redis
  • Microsoft.Extensions.Configuration.AzureKeyVault
  • Microsoft.Extensions.Logging.AzureAppServices
  • Microsoft.VisualStudio.Web.BrowserLink

所以如果项目中需要用到这些内容, 可以单独引用它们, 而不建议再次整体引用 Microsoft.AspNetCore.All

3. 修改其他引用

再次打开*.csproj文件, 可以看到对应的 Microsoft.AspNetCore.All 已经替换为Microsoft.AspNetCore.App 了

删除各种 <DotNetCliToolReference Include="********" Version="2.0.3" />  例如: <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />

最终这个*.csproj文件类似这样

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <UserSecretsId>aspnet-{Project Name}-{GUID}</UserSecretsId>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" PrivateAssets="All" />
  </ItemGroup>
</Project>

4.修改Program.cs

修改Main方法和BuildWebHost方法, 结果如下

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }

5. 修改Startup

修改后代码示例如下, 主要是新增行,删除UseBrowserLink, 见下文代码的颜色标注

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace WebApp1
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {          //app.UseBrowserLink();  删除此行
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseMvc();
        }
    }
}

三. 其他改动

  • shared文件夹中添加了新文件_CookieConsentPartial.cshtml, 在_Layout文件中被引用 <partial name="_CookieConsentPartial" />
  • _ValidationScriptsPartial.cshtml 文件中的jquery.validate.js版本升级到了1.17.0
  • JQuery从2.2.0升级到3.3.1

四. 一点郁闷的事

看到2.1发布, 首先没有去下载SDK而是查看VS是否有更新,希望更新VS的时候可以顺便更新SDK。 当前版本15.7.1 , 官方文档中提示前几天有15.7.2发布, VS中检查更新一直没有。

下载SDK安装好后, 终于右上角的小旗子亮了提示有更新, 各种重试均是不动没有下载进度。

最后不管它发现它以一种怪异的方式开始了更新。。。

原文地址:https://www.cnblogs.com/FlyLolo/p/ASPNETCore2_10.html

时间: 2024-08-28 18:29:44

ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1的相关文章

将asp.net core2.0项目部署在IIS上运行

原文:将asp.net core2.0项目部署在IIS上运行 前言: ?与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控制台应用程序中,并通过dotnet运行时命令调用.它并没有被加载到IIS工作进程中,但是IIS却加载了名为AspNetCoreModule的本地Module,这个Module用于执行外部的控制台程序. ?部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,点击

ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用. ASP.NET Core提供了内置的日志,但没弄明白这么把它输出到文件, 只能在VS的输出中查看, 谁知道怎么弄告诉我一下.(ASP.NET Core 系列目录) 本例 GitHub 一.内置日志的使用 上一篇:如何在后台运行一个任务  中使用到了内置的日志,直接在构造中注入一下,然后直接使用即可, 非常方便 pu

.NET Core 从1.1升级到2.0记录(Cookie中间件踩坑)

.NET Core 2.0 新时代 万众瞩目的.NET Core 2.0终于发布了,原定于9.19的dotnetconf大会的发布时间大大提前了1个月,.NET Core 2.0/.NET Standard 2.0的正式发布是.NET 开源跨平台的一个重大里程碑. .NET Core 2.0 SDK下载地址:https://www.microsoft.com/net/download/core#/sdk Visual Studio 2017 15.3下载地址:https://www.visual

麻雀虽小,五脏俱全。基于Asp.net core + Sqlite 5分钟快速上手一个小项目

虽然该方法不会用在实际开发中,但该过程对于初学者还是非常友好的,真应了麻雀虽小,五脏俱全这句话了.好了不多废话了,直接开始!! 1.建立一个名为test的Asp.net core web应用程序 这一部分的目的是建立项目,并使用MVC框架. 2.导入依赖项(sqlite数据库 与 EF core) 这一部分的操作目的是可以让我们的项目可以使用操作数据库的一些功能. Microsoft.EntityFrameworkCore.Sqlite Microsoft.EntityFrameworkCore

Asp.NET Core2.0 项目实战入门视频课程_完整版

END OR START? 看到这个标题,你开不开心,激不激动呢? 没错,.net core的入门课程已经完毕了.52ABP.School项目从11月19日,第一章视频的试录制,到今天完整版出炉,离不开各位的帮助和加油. 课程概述 52ABP大学例子程序演示如何使用Entity Framework(EF) Core 2.0 和 Visual Studio 2017 创建一个 ASP.NET Core 2.0 MVC web 应用. 例子是一个大学的网站.它包括了学生入学,创建课程.教师管理等功能

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-2项目说明和源码下载

本文目录1. 摘要2. Window下运行 3.linux下运行4. 开发记录5. 总结 1.概要 写<Asp.Net Core 2.0 项目实战>系列断断续续已经很长时间了,期间很多朋友要求开放源码,但是项目代码一直有很多问题,就算勉强开源出来大家看起来也比较费劲,运行起来也看不到实际的效果.在公司平时真的是太忙了,很少有时间去系统的整理一个框架,只能以学习这种形式边学边做.承诺大家开源出来此项目我做到了,虽然项目依然有很多问题,我接下来会再完善.功能暂时不会再增加了,暂时先做到权限管理,以

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-3项目架构说明

本文目录1. 摘要2. 框架介绍 3. 权限管理之多一点说明4. 总结 1.  摘要 NCMVC角色权限管理框架是由最近练习Net Core时抽时间整理的系统,后续能不能发展成一个cms还要看朋友们是否有需要或时间是否充实.这里NCMVC主要还是给想要学习接触Asp.Net Core2.0的朋友们提供一些借鉴以及坑点提醒等,项目现在还有很多不足,以后会尽量完善一些.写这个系列也没有完全按照原来列好的目录正序来写,倒叙/插叙都有也是项目练习到了顺便记录下来仅此而已.中间有朋友留言说没有源码理解起来

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-5项目数据库操作封装操作

本文目录1. 摘要2. Ado.Net数据库操作封装类 3. EF Core数据库操作4. 总结 1.  摘要 Asp.Net Core2.0下操作MSSQL数据库,这里介绍两种操作方式,一种是.NET Framework的ADO.NET<Ado.Net百科>,另一种就是Net Core2.0下的一种orm操作EF Core,由于本人习惯Ado.Net编程模式,EF Core涉猎不是很深,推荐网友连接,本文有不写的不到之处欢迎大家批评指正. 2.  Ado.Net数据库操作封装类 2.1配置文

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-13基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级

1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证,登录是权限的最基础的认证,没有登录就没有接下来的各种操作权限管理,以及数据权限管理(暂不探讨),这里我们把登录当作全局权限,进入系统后再根据不同的角色或者人员,固定基本功能的展示,当不同的角色要对功能操作时,就需要验证操作权限,如:查看/添加/修改/删除,也就是我们常说的控制到按钮级.下面让我们一步一步来操作