緣由

  • 一直以來,只要開發 C# 程式,小弟都是使用 Visual Studio 201x,但最近辦公室搬家到新廠區,入網申請竟然要先用程式檢查是否有安裝不合法軟體。

  • 令人感到詭異的是 Visual Studio 不論是安裝 正式版Express 版 都會被說是不合法軟體,只能忍痛移除這地表最強開發神器。

  • 惟 Visual Studio Code (簡稱 VSCode ) 可以安然無恙的使用,這才讓我開始動了想嘗試用 VSCode + .Net Core 開發 C# 的念頭。

  • 光是環境建置,就遇到不少問題,Google 到許多過時無法解決問題的解法,四處碰壁,所幸最終還是找到可以真正解決問題的解法,這裡做些紀錄。

系統基本訊息

  • Windows 8.1 x64
  • VS Code 1.26.1
  • .Net Core SDK 2.1.3

第一個錯誤訊息

  • 出師不利,依照這篇實作。
  • 系統安裝了 .Net Core SDK 、VS Code 安裝 C#, 保哥 .NET Core Extension Pack
  • 隨手寫個 Hello World 執行 dotnet new 指令,結果出現下面的錯誤訊息。
  • 查其原因是需要安裝 .NET Framework 4.6.1 以上版本。
Failed to load the dll from [C:\Program Files\dotnet\host\fxr\2.1.3\hostfxr.dll], HRESULT: 0x8007007E
The library hostfxr.dll was found, but loading it from C:\Program Files\dotnet\host\fxr\2.1.3\hostfxr.dll failed
  - Installing .NET Core prerequisites might help resolve this problem.
     http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

安裝 .NET Framework 又出錯

手動安裝 KB2919355 又一直失敗

  • 嘗試數次手動安裝 KB2919355,跑了好久,最後都顯示尚未安裝。 尚未安裝
官網指示:

KB2919442 是 Windows 8.1 更新的必要條件,應在安裝 KB2919355 前先進行安裝。

必須按照下列順序安裝這些 KB:
clearcompressionflag.exe、KB2919355、KB2932046、KB2959977、KB2937592、KB2938439 和 KB2934018。

KB2919355 安裝失敗解法

步驟一、使用系統管理員權限開啟 CMD

步驟二、
Windows 8.1(x64)), 輸入:
dism /online /remove-package /packagename:Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14
 
Windows 8.1(x86), 輸入:
dism /online /remove-package /packagename:Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14

Windows RT 8.1, 輸入:
dism /online /remove-package /packagename:Package_for_KB2919355~31bf3856ad364e35~arm~~6.3.1.14

步驟三、輸入:
dism.exe /online /cleanup-image /restorehealth

步驟四、輸入:
dism /online /cleanup-image /startcomponentcleanup

步驟五、開啟 Windows Update 檢查更新,應該就可以找到 KB2919355 進行安裝。

KB2919355 若安裝完成,記得回去安裝 .NET Framework。

安裝 KB2999226 補丁

  • 如果成功安裝完成 KB2919355 和 .NET Framework,執行 dotnet new 還是出現錯誤訊息,則需安裝 KB2999226

終於…

為了看到下面這畫面,著實費了不少力氣 final

建立專案

  • 輸入 dotnet new console -o MyConsole
  • new : 建立新專案
  • console : 建立 console 類型專案
  • -o : o output,表示建立在 MyConsole 目錄下 dotnet new

載入 OmniSharp。

  • 第一次開啟 C# 檔案時,會在編輯器中載入 OmniSharp
  • 提示需新增遺失的項目,以建置和偵錯應用程式。 選取 YesOmniSharp

編譯 .NET Core

  • 輸入 dotnet build dotnet build

### 執行 .NET Core

  • 輸入 dotnet .\bin\Debug\netcoreapp2.1\MyConsole.dlldotnet run dotnet run

偵錯

  • 確定綠色箭頭旁的下拉式清單已選取 .NET Core Launch (console)
  • 按編輯器邊界,或將文字游標移至編輯器中的第 9 行,然後按 F9 鍵新增中斷點。
  • 若要開始偵錯,請選取 F5 或綠色箭頭。 Debug

發布為 exe 執行檔

  • MyConsole.csproj 中新增 <RuntimeIdentifiers>win-x64;win7-x64;win81-x64</RuntimeIdentifiers>。(可不必)
  • 指定編譯目標系統 dotnet publish -c release -r win-x64
  • 會產生一 release 目錄, exe 執行檔會儲存於 release\netcoreapp2.1\win-x64\publish\ 中。 exe

編譯目標系統 Windows RID

Windows RID

IntelliSense 失效的解决方法

  • F1 輸入: OmniSharp:Restart OmniSharp
  • 重新啟動 VSCode。

參考