中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何將.NETCore2.0項目升級到.NETCore2.1

這篇文章主要講解了“如何將.NET Core 2.0項目升級到.NET Core 2.1”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何將.NET Core 2.0項目升級到.NET Core 2.1”吧!

秀英ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

Step by Step

        一、修改我們的項目目標(biāo)框架
        在更新 VS 2017 的過程中,我們的 .NET Core 版本也會進行更新,當(dāng)然,如果你的電腦中沒有安裝 .NET Core 2.1 SDK,則需要你從官網(wǎng)上下載最新版的 SDK 進行安裝。
        當(dāng)我們已經(jīng)安裝好我們的 .NET Core 2.1 SDK 后,就可以將我們原來程序的目標(biāo)框架更改為 .NET Core 2.1。
        右鍵我們的項目,我們可以直接編輯 csproj 文件 或者通過打開屬性選項進行可視化的修改。其實這里我們通過屬性頁面進行編輯實質(zhì)上就是編輯我們的 csproj 文件。

        同時,為了保持我們的項目框架的一致性,我們需要將我們引用的類庫的目標(biāo)框架同樣修改成 .NET Core 2.1。

        二、替換 Nuget 包引用
        在 .NET Core 2.1 版本中 微軟將 Microsoft.AspNetCore.All 這個 .NET Core 的基礎(chǔ) DLL 更換成了 Microsoft.AspNetCore.App,因此,在更新了程序的目標(biāo)框架后我們還需要將我們程序刪除對于 Microsoft.AspNetCore.All 的引用,同時添加對于 Microsoft.AspNetCore.App 的引用。
        在 Microsoft.AspNetCore.App 中不包含了以下 Nuget package,如果你對于這些 package 有需要的話,你可以在項目中引用這些 package。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.App 的時候,可能會提示缺少某些依賴項或者提示我們原來引用的 Nuget 包版本不滿足 Microsoft.AspNetCore.App,我們只需要根據(jù)提示的錯誤信息將我們?nèi)鄙俚囊蕾図椞砑由匣蛘邔⒉粷M足要求的版本升級就可以了。
        例如我在升級 PSU.EFCore 這個類庫中時,發(fā)現(xiàn)引用的程序集版本不滿足我們我們使用 2.1.6 版本的 Microsoft.AspNetCore.App ,我們只需要將這些引用的 DLL 進行升級,再安裝我們最新版本的 Microsoft.AspNetCore.App。

        在安裝 .NET Core 2.1 SDK 之后,下列的 tools 已經(jīng)被包含在最新版本的 .NET Core CLI 中,因此,我們可以在 csproj 文件中刪除 DotNetCliToolReference 節(jié)點下的這些引用的 Nuget 包。

1
2
3
4
Microsoft.DotNet.Watcher.Tools (dotnet watch)
Microsoft.EntityFrameworkCore.Tools.DotNet (dotnet ef)
Microsoft.Extensions.Caching.SqlConfig.Tools (dotnet sql-cache)
Microsoft.Extensions.SecretManager.Tools (dotnet user-secrets)

        對于 DotNetCliToolReference 節(jié)點下的 dotnet-aspnet-codegenerator(用于生成 MVC中的 controllers 和 views 模板) Nuget 包,你同樣可以選擇刪除這個引用,同時使用全局安裝 tool 來代替它。

1
dotnet tool install -g dotnet-aspnet-codegenerator

        三、基于 ASP.NET Core 2.1 代碼慣例的更改
        在 .NET Core 升級到 2.1 版本后,ASP.NET Core 相應(yīng)的也進行了一些更新,我們創(chuàng)建的模板中的一些基礎(chǔ)代碼也進行了修改。例如在下面示例中,我們使用 .NET Core 2.0 版本創(chuàng)建的 MVC 項目中的 Program.cs 代碼結(jié)構(gòu)與使用 .NET Core 2.1 生成的模板代碼是有一定差異的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//ASP.NET Core 2.0
namespace WebApp1
{
   public class Program
   {
       public static void Main(string[] args)
       {
           BuildWebHost(args).Run();
       }

       public static IWebHost BuildWebHost(string[] args) =>
           WebHost.CreateDefaultBuilder(args)
               .UseStartup<Startup>()
.Build();
   }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//ASP.NET Core 2.1
namespace WebApp1
{
   public class Program
   {
       public static void Main(string[] args)
       {
           CreateWebHostBuilder(args).Build().Run();
       }

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

        這里我們按照最新版本的模板代碼對我們的 Program.cs 代碼結(jié)構(gòu)進行修改。


        同樣的,在 Startup.cs 文件中,ASP.NET Core 2.1 版本增加了對于 GDPR 的支持(歐盟的一項政策,當(dāng)我們需要收集用戶的數(shù)據(jù)時,必須以「簡潔、透明且易懂的形式,清晰和平白的語言」向用戶說明,例如這里我們使用了 cookie、session 來存儲用戶的數(shù)據(jù),我們就需要提前告知用戶),對于 HTTPS 的重定向支持以及增加了 SetCompatibilityVersion 方法允許應(yīng)用程序選擇加入或退出ASP.NET MVC Core 2.1+中引入的可能中斷的行為更改(嗯,看了一圈還是不明白到底是干什么的)。

        四、其它更改
        在 ASP.NET Core MVC 框架版本的更新中,同樣對于引用的一些 JS 類庫進行了升級,這里我就不升級了,主要為我們的程序添加對于 GDPR 政策的提示。以及要求我們的程序以 HTTPS 的形式進行訪問。
        首先我們創(chuàng)建一個分布視圖 _CookieConsentPartial 用來提示我們需要收集用戶的信息,在 SecretController 控制器中添加一個 Action 用來顯示我們的隱私政策,同時在我們的模板頁面中引用創(chuàng)建的分布視圖,這里的樣式就不做任何的調(diào)整了,只是做個示例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@using Microsoft.AspNetCore.Http.Features

@{
   var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
   var showBanner = !consentFeature?.CanTrack ?? false;
   var cookieString = consentFeature?.CreateConsentCookie();
}

@if (showBanner)
{
   <nav id="cookieConsent" class="navbar navbar-default navbar-fixed-top" role="alert">
       <div class="container">
           <div class="navbar-header">
               <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#cookieConsent .navbar-collapse">
                   <span class="sr-only">Toggle cookie consent banner</span>
                   <span class="icon-bar"></span>
                   <span class="icon-bar"></span>
                   <span class="icon-bar"></span>
               </button>
               <span class="navbar-brand"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>
           </div>
           <div class="collapse navbar-collapse">
               <p class="navbar-text">
                   Use this space to summarize your privacy and cookie use policy.
               </p>
               <div class="navbar-right">
                   <a asp-controller="Secret" asp-action="Privacy" class="btn btn-info navbar-btn">Learn More</a>
                   <button type="button" class="btn btn-default navbar-btn" data-cookie-string="@cookieString">Accept</button>
               </div>
           </div>
       </div>
   </nav>
   <script>
       (function () {
           document.querySelector("#cookieConsent button[data-cookie-string]").addEventListener("click", function (el) {
               document.cookie = el.target.dataset.cookieString;
               document.querySelector("#cookieConsent").classList.add("hidden");
           }, false);
       })();
   </script>
}
1
2
//在網(wǎng)站的首頁(登錄頁面)中引用分布視圖
<partial name="_CookieConsentPartial" />
1
2
3
4
5
6
7
8
9
/// <summary>
/// 隱私政策
/// </summary>
/// <returns></returns>
[AllowAnonymous]
public IActionResult Privacy()
{
   return View();
}

        在之前的步驟中,我們在代碼中支持了使用 HTTPS 請求訪問,現(xiàn)在我們就可以啟用 SSL 來使我們通過 HTTPS 請求來訪問我們的項目。

感謝各位的閱讀,以上就是“如何將.NET Core 2.0項目升級到.NET Core 2.1”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何將.NET Core 2.0項目升級到.NET Core 2.1這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

本文名稱:如何將.NETCore2.0項目升級到.NETCore2.1
URL鏈接:http://www.rwnh.cn/article20/jipcjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站收錄、微信公眾號、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
霍林郭勒市| 富源县| 聂拉木县| 什邡市| 贵港市| 本溪市| 台中市| 津南区| 北票市| 全州县| 洛川县| 聂拉木县| 许昌县| 霍山县| 仪征市| 祁东县| 苍南县| 库车县| 上虞市| 巢湖市| 郑州市| 喀喇沁旗| 郎溪县| 湘乡市| 舞阳县| 宁津县| 安达市| 新巴尔虎右旗| 沐川县| 南阳市| 苏尼特左旗| 蛟河市| 社旗县| 塔河县| 东港市| 象山县| 永川市| 资溪县| 普定县| 南郑县| 南通市|