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://2i3i.com/aspnetcore2_10.html ,转载请注明来源地址。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇