.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 dotnethellocd dotnethellodotnet 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-x64publish 文件夹,可以直接执行 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 需要安装libsslOS X requires the following libraries and versions installed:
执行dotnethello这样我们无需安装.NET Core SDK 就可以运行.NET Core 应用程序。实现了.NET Core 跨平台。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133203.htm