.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
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 跨平台。
如果你觉得本文对你有帮助,请点击“
推荐
”,谢谢。