在上一個Lab:了解Framework Dependent Deployment(FDD)執行(發佈)模式建立了一個.Net Core Console程式, 並且用發佈看產出的結果 - 最後得到的是FDD的執行模式。
在這一個lab將會沿用上一個lab的Solution接下去建立另外一種執行模式,Self Contained Deployment (SCD)。
上個lab的最後成果的程式碼可以再github看到:https://github.com/alantsai-samples/2017-10-14-net-core-workshop
git標籤:lab2/1-fdd-finish
兩種方式取得:
- 用git clone然後在checkout到
lab2/1-fdd-finish
- 從github release下載:下載鏈接
操作步驟
這個lab裡面會切分以下幾個階段:
- 建立另外一個Net Core Console
- 修改csproj變成SDC模式並且發佈Windows版本
- 修改發佈設定 - 建立linux版本
建立另外一個Net Core Console
- 直接在上一個lab建立出來的solution點 右鍵,然後選擇
Add
->New Project
- 在 新增視窗 裡面 選擇
.Net Core
->Console App (.Net Core)
name
SCD
- 為了 更好區分我們之前建立的
FDD
專案,打開Program.cs
,然後調整 一下輸出的內容 改成 Console.WriteLine("Hello World From SCD!");
最後內容如下:
修改csproj變成SDC模式並且發佈Windows版本
- 對
SCD
的專案點 右鍵然後選擇 Edit SCD.csproj - 在 打開的 編輯器 裡面,在
TargetFramework
下面加入: <RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers>
輸入的值為RDI,有什麼值可以使用可以參考:https://docs.microsoft.com/en-us/dotnet/core/rid-catalog題外話:.Net Core 2.0之後才有所謂的Portable版本,例如linux-x64
- 避免需要列出很多不同的linux distro。- 對
SCD.csproj
點右鍵,然後選擇Publish
- 在跳出來的視窗:
- 選擇 中間的
Folder
- 選擇 右下角 的 publish
- 選擇 中間的
- 這個時候會開始 發佈,注意到 target runtime 的部分(這邊是
win-x64
),可以打開最後發佈的結果(點Target Location
的鏈接),會看到熟悉的exe檔案
修改發佈設定 - 建立linux版本
- 回到 VS 的發佈畫面,可以點下:
Settings
- 在開啟的畫面選擇
Target Runtime
- 改成
Linux-x64
- 這個時候在按一次
publish
- 檢查 產出 內容 會發現和剛剛 target win-x64的時候不一樣,也沒有exe檔案
完整程式碼可以再github看到:https://github.com/alantsai-samples/2017-10-14-net-core-workshop
git標籤:lab2/2-scd-finish
兩種方式取得:
- 用git clone然後在checkout到
lab2/2-scd-finish
- 從github release下載:下載鏈接
參考資料
- 官方介紹 SCD
- https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-vs#simpleSelf
- RDI - 指定的target runtime
- https://docs.microsoft.com/en-us/dotnet/core/rid-catalog