跨平台发布
简单新建一个项目。
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-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 跨平台。
原文 http://www.linuxidc.com/Linux/2016-07/133202.htm 作者:linezero
.NET Core 跨平台发布Linux和OSX
原文地址:http://www.cnblogs.com/caipz/p/7625708.html