用 VSCode 來寫 C# 之紀錄
緣由
-
一直以來,只要開發 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 又出錯
- 安裝 .NET Framework 4.6.1 或 .NET Framework 4.7.2 又出錯。
- 說是 Windows Update 少裝了 KB2919355 不給裝 .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。
終於…
為了看到下面這畫面,著實費了不少力氣
建立專案
- 輸入
dotnet new console -o MyConsole
- new : 建立新專案
- console : 建立 console 類型專案
- -o : o output,表示建立在 MyConsole 目錄下
載入 OmniSharp。
- 第一次開啟 C# 檔案時,會在編輯器中載入
OmniSharp
。 - 提示需新增遺失的項目,以建置和偵錯應用程式。 選取
Yes
。
編譯 .NET Core
- 輸入
dotnet build
### 執行 .NET Core
- 輸入
dotnet .\bin\Debug\netcoreapp2.1\MyConsole.dll
或dotnet run
偵錯
- 確定綠色箭頭旁的下拉式清單已選取
.NET Core Launch (console)
。 - 按編輯器邊界,或將文字游標移至編輯器中的第 9 行,然後按 F9 鍵新增中斷點。
- 若要開始偵錯,請選取 F5 或綠色箭頭。
發布為 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\
中。
編譯目標系統 Windows RID
IntelliSense 失效的解决方法
- 按
F1
輸入:OmniSharp:Restart OmniSharp
- 重新啟動 VSCode。
參考
- 如何使用 VS Code 建立 .NET Core 開發環境 ?
- C# 與 Visual Studio Code 使用者入門
- Visual Studio Code创建C#项目
- HOW to INSTALL WINDOWS 8.1 UPDATE 1 PROPERLY/ KB2919355 Problem SOLVED
- Error: 0x80073712 when installing KB 2919355
- win8.1系統KB2919355補丁安裝失敗的解決方法
- .NET Core RID 類別目錄
- .NET Core – How to publish a self-contained application (.exe)