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

摘要:
ASP。NET Core系列目录。NET Core 2.1终于发布了。立即升级。1、 首先,立即安装SDK。安装SDK后,如果您创建了一个新项目,您可以看到选项2.1。2.将现有的2.0项目更新为2.11。修改项目版本。在解决方案管理器中的项目上单击鼠标右键,然后选择“编辑项目名称”。csproj将netcoreapp2.0中的2.0更改为2.1。保存。

ASP.NET Core 系列目录

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

一. 安装SDK

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

ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1(转)第1张

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

ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1(转)第2张

二. 更新现有2.0项目到2.1

1. 修改 项目版本

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

ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1(转)第3张

将 <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安装好后, 终于右上角的小旗子亮了提示有更新, 各种重试均是不动没有下载进度。

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

ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1(转)第10张

 ASP.NET Core 系列目录

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

免责声明:文章转载自《ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ES2020新语法【空值合并操作符 ??】和【逻辑或操作符 ||】的区别弹性盒子Flex Box滚动条原理,避免被撑开,永不失效下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解决 fatal error: Eigen/Core: No such file or directory

确认是否安装了eigen3 sudo apt-get install libeigen3-dev 解决 fatal error: Eigen/Core: No such file or directory 如果已经安装,但当调用 eigen 库时,报错:fatal error: Eigen/Core: No such file or directory...

flask 中的模板语法 jinja2及render_template的深度用法

是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符串,用于传递到前端 STUDENT = {'name': 'Old', 'age': 38, 'gender': '中'}, STUDENT_LIST =...

linux编程中的段错误

linux上用C/C++写程序时,很容易碰到段错误的提示,此时程序被自动终止。这个问题是由于非法访问内存引起的,一般的原因都是因为程序中的指针解引用出现了错误。出现段错误是,linux一般会生成一个core dump文件,如果没有生成,可能是因为分配给core dump文件的控件为0,可以用ulimit -c命令查看,如果为0,core dump文件不会生...

.NET Core项目部署时自定义端口号

不管是在Linux系统还是Windows系统部署.NET Core项目,都会有自定义项目端口号的需求 一、默认的端口号 环境:Linux系统/Windows系统。正常情况下,.NET Core项目发布后的默认端口是5000,发布如下: 二、使用UserUrls自定义端口号 环境:Linux系统/Windows系统,.NET Core项目中UserUrls...

从微信SDK看ProtoBuffer文件的生成

前言 Protocol Buffers (下面简称PB)是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。它支持多种语言,比如C++,Java,C#,Python,JavaScript等等。目前它的最新版本是3.0.0。与...

友盟官方文档

#  产品概述 关于分享和授权的sdk接口,我们在v4.4.0做出了巨大的改变,精简了接口调用的代码。并将分享授权,与评论等功能做出了隔离,使结构更加清晰。所以本版本的功能也只有分享与授权并无其他功能,请开发者注意。 注意:本文示例代码只有分享与授权功能,并对接口进行了调整,如需要原功能的开发者,请继续使用v4.3.0版本。 # 获取友盟Appkey 如果你...