最近用起了VS Code,只是想單純地做一些C#程式範例(Snippet),起初照了
美女Demo
(她真的很甜)安裝設定,簡要如下:
- 安裝VS Code(只是一個Open Architecture文字編輯器
- 安裝.NET Core(就是.NET Framework 核心肌群
- 在VS Code下安裝種種必須Plugin
- 下指令初始化專案資料結構
- $dotnet new
- 開寫C#
可是呢,當我嘗試想用一些命名空間組件時就開始鬼打牆,好比說System.Collections.Hashtable,明明已經在最前面寫Using System.Collections
可VS Code不會讓你Build過,原因是 xxx Type or name could not be found
原因很簡單,你沒替專案加入參考
如同在Visual Studio下,要引用其他組件除了要在程式碼最開頭帶入Namespace(Using xxxxx),也必須在專案下加入參考(歐~想起來了)
以下紀錄一下如何替VS Code C# Project加入參考
首先打開下面的 終端機(Terminal)以以下指令下載Package,好像是可以想成下載函式庫
#dotnet add package <AssemblyName>
為什麼是System.Collections.NonGeneric?參考的Assembly(.dll/動態函式庫)怎麼查詢?
可看
API Reference,裡面的Assembly就是組件名稱,以Hashtable為例,必須要加入System.Collections.NonGeneric,所以下
#dotnet add package System.Collections.NonGeneric
系統會跑出一些訊息表示正在Download,最終會處理完成,如果來了一些Error,比較大可能性是"打錯字",好比System.Collections打成System.Collection(少一個s)
下完以後,再下
#dotnet restore
會自動幫你在.csproj內引入dependencies
你的.csproj會多出dependencies片段:
<project sdk="Microsoft.NET.Sdk">
<propertygroup>
<outputtype>Exe</outputtype>
<targetframework>netcoreapp1.1</targetframework>
</propertygroup>
<itemgroup>
<packagereference include="System.Collections" version="4.3.0">
<packagereference include="System.Collections.NonGeneric" version="4.3.0">
<packagereference include="System.Runtime.Extensions" version="4.3.0">
<packagereference include="System.Xml.XmlSerializer" version="4.3.0">
</packagereference></packagereference></packagereference></packagereference></itemgroup>
</project>
這些是原先新專案結構初始化後所沒有的片段
加入組件到此就沒問題了
咦,若是要加入其他參考專案呢?
可以參考這個指令,
dot add reference
後記:網路上會查到很多 手動改project.json以加入dependencies的建議,看起來是比較過去的作法,目前版本的.NET Core SDK似乎要嘗試以.csproj做統整(與Visual Studio一致),
捨棄project.json作為專案結構的描述,也許是如此一來專案比較好在VS Studio與VS Code兩個平台上操作而不會有轉換的困擾