解決windows 10 升級後,無法遠端連線問題

在某一次升級後,發生遠端連線到其他電腦出現錯誤:

原因應該是出在被連線的電腦並沒有執行 windows update,但有些時候主機可能沒有權限,或者其他考量無法更新。因此如何解決(與解決後,微軟已經修復這個問題,該如何還原)。因此紀錄以下過程:

首先要執行 gpedit.msc【群組原則】後,在以下的【電腦設定】->【系統管理範本】->【系統】中:

點選【認證委派】,在【加密 Oracle 補救措施】 設定已啟用即可:

原先的未設定改為【已啟用】就可以進行遠端連線了:

asp.net core 2.0 升級 2.1

升級 2.1 的主要原因是因為從 2.1 開始,微軟加入了 LTS 至少三年的支持:

.NET Core 2.1 will be a long-term support (LTS) release. This means that it is supported for three years. We recommend that you make .NET Core 2.1 your new standard for .NET Core development.

以下說明如何完成升級的每一個步驟

安裝 dotnet core 2.1 SDK

首先要先安裝 dotnet core 2.1 SDK,下圖可以看到目前並只支援 2.0

可以直接點選【安裝其他架構…】就會導入到安裝 dotnet core for VS 的畫面,或者直接到 dotnet core SDK 安裝 下載。執行後就會看到以下安裝畫面,依據畫面指示逐步安裝即可:

安裝完畢後,就可以看到 2.1 的選項:

 

將現有 asp.net core 2.0 專案升級到 2.1

主要參考官方說明: Migrate from ASP.NET Core 2.0 to 2.1

         1. 變更專案為 2.1

可以直接在專案屬性中變更,或者手動調整 TargetFramework 2.0 -> 2.1

 

 

2. 變更 nuget package:原先的 .All 變為 .App,同時也沒有版本的設定

  <ItemGroup>
    <PackageReference Include=Microsoft.AspNetCore.All Version=2.0.5 />
    <PackageReference Include=Microsoft.VisualStudio.Web.CodeGeneration.Design Version=2.0.2 />
  </ItemGroup>
改為

  <ItemGroup>
    <PackageReference Include=Microsoft.AspNetCore.App />
    <PackageReference Include=Microsoft.VisualStudio.Web.CodeGeneration.Design Version=2.1.0 PrivateAssets=All />
  </ItemGroup>

 

        3. 移除 DotnetCliToolReference 這些內容已經改成 Globals 支援了:

  <ItemGroup>
    <DotNetCliToolReference Include=Microsoft.VisualStudio.Web.CodeGeneration.Tools Version=2.0.2 />
  </ItemGroup>

 

4. 修改 Progarm 呼叫 BuildWebHost 的寫法,改為 CreateWebHostBuilder。這個步驟不修改也是可以執行的(請注意,這個步驟不要執行,因為執行之後可以會造成 update-dabase 失敗Unable to create an object of type ‘xxx’. Add an implementation of

‘IDesignTimeDbContextFactory<xxx>’)。

 

5. 修改 Startup 的寫法,主要重點是  app.UseBrowserLink(); 已經被移除。

6. 如果有引用到其他專案(例如 UnitTest Project),這時候要注意預設的版本,在這個版本中,單元測試可以忽略 Nuget 許多套件,原因是會自動由 Global 的設定中帶入;但因為我們是由 dotnet core 2.0 升級,預設的套件還是停留在 2.0,因此會跟 reference project 衝突。這時候必須要明確定義有哪些 packages 需要引用;大部分使用以下即可:

    <PackageReference Include=Microsoft.AspNetCore.App Version=2.1.1 />
    <PackageReference Include=Microsoft.EntityFrameworkCore Version=2.1.1 />
    <PackageReference Include=Microsoft.EntityFrameworkCore.InMemory Version=2.1.1 />
    <PackageReference Include=Microsoft.NET.Test.Sdk Version=15.7.2 />
    <PackageReference Include=Moq Version=4.8.3 />
    <PackageReference Include=xunit Version=2.3.1 />
    <PackageReference Include=xunit.runner.visualstudio Version=2.3.1 />
    <DotNetCliToolReference Include=dotnet-xunit Version=2.3.1 />