.NET Core 跨平台發布(dotnet publish)


.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/

跨平台發布

簡單新建一個項目。

mkdir dotnethello

cd dotnethello

dotnet new

 

dotnet new之后 修改project.json 如下:

{
  "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

<?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 

https://github.com/dotnet/core/blob/master/Documentation/prereqs.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

 

CentOS:

CentOS distributions require the following libraries installed: 

  • deltarpm
  • epel-release
  • unzip
  • libunwind
  • gettext
  • libcurl-devel
  • openssl-devel
  • zlib
  • libicu-devel

 

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 跨平台。

 

如果你覺得本文對你有幫助,請點擊“推薦”,謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM