.NET Core 跨平臺釋出(dotnet publish) ,無需安裝.NET Core SDK,就可以執行。前面講解了.NET Core 的VSCode 開發。現在來講講釋出(dotnet publish)。
.NET Core and ASP.NET Core 1.0 RC2 runtime and libraries 在五月中旬釋出。.NET Core and ASP.NET Core 1.0 RTM (release) runtime and libraries 六月底釋出。
https://blogs.msdn.microsoft.com/dotnet/2016/05/06/net-core-rc2-improvements-schedule-and-roadmap/
跨平臺釋出
簡單新建一個專案。
1 2 3 4 5 |
mkdir dotnethello cd dotnethello dotnet new |
dotnet new之後 修改project.json 如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
{ "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", //去掉 "version": "1.0.0-rc2-*" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } }, "runtimes":{//加入runtime "win7-x64": { }, "win7-x86": { }, "osx.10.10-x64": { }, "osx.10.11-x64": { }, "ubuntu.14.04-x64":{ } } } |
新增NuGet.Config
1 2 3 4 5 6 7 8 |
xml version="1.0" encoding="utf-8"?> configuration> packageSources> clear /> add key="AspNetCI" value="https://www.myget.org/F/aspnetcirelease/api/v3/index.json" /> add key="NuGet.org" value="https://api.nuget.org/v3/index.json" /> packageSources> configuration> |
dotnet restore
還原以後就可以編譯釋出了。
Windows:
這裡預設輸入 dotnet publish 會發布 win7-x64 。
我們定位到 win7-x64\publish 資料夾,可以直接執行 dotnethello.exe ,無需安裝.netcore sdk 。
Ubuntu:
我們要釋出到linux ubuntu 直接指定 runtime 。
dotnet publish -r ubuntu.14.04-x64
把釋出資料夾(ubuntu.14.04-x64/publish)拷貝到ubuntu上。
直接就可以執行,不需要安裝.netcore sdk,只需.netcore依賴的幾個包:
https://github.com/dotnet/cli/blob/rel/1.0.0/Documentation/cli-prerequisites.md
Ubuntu distributions require the following libraries installed:
- libunwind8
- libunwind8-dev
- gettext
- libicu-dev
- liblttng-ust-dev
- libcurl4-openssl-dev
- libssl-dev
- uuid-dev
- unzip
設定資料夾下的執行檔案dotnethello 設定好許可權以後直接 ./dotnethello
Mac OS:
同理mac os 一樣,指定osx runtime。
dotnet publish -r osx.10.10-x64
將 osx.10.10-x64/publish 拷貝到mac os 。
OS X 需要安裝libssl
OS X requires the following libraries and versions installed:
- libssl 1.1
執行dotnethello
這樣我們無需安裝.NET Core SDK 就可以執行.NET Core 應用程式。實現了.NET Core 跨平臺。