asp.net core 1.1 publish to a linux

其实在.net core github上有教程的,我也是跟着教程学的。

https://dotnet.github.io/

asp.net core 1.1 publish to a linux

首先准备一个linux环境,我是在虚拟机上装了一个ubuntu server 16.04,

然后我把网络类型设置为了桥接,并分配了一个局域网IP,这样我就可以从局域网访问这台虚拟机了。

设置数据源:

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update

安装.netcore运行环境

sudo apt-get install dotnet-dev-1.0.1

安装完成后,你执行dotnet命令应该有版本和使用提示输出。

asp.net core 1.1 publish to a linux

然后怎么把我们的应用传上去呢。

首先,我们在linux上建一个目录,比如我建的/home/Projects/FirstCore

然后给linux安装sshserver,我们本地准备一个ssh client。(安装sshserver 请自行百度)

然后打开visualstudio 打开你的项目。

把你的项目的Program.cs文件做如下修改

asp.net core 1.1 publish to a linux

在这里增加了UseUrls方法,因为默认是只能localhost访问,所以我们把IP地址改为任意IP。

选择菜单里的生成-发布。

发布目标选 文件夹并配置好你的目标文件夹。

然后点发布按钮就行了。

当然,你也可以在命令行下敲命令:

进入项目所在目录: dotnet publish -c Release

如果代码没有错误,会在 <你的项目>inRelease etcoreapp1.1 中多了一个 publish 目录 

把这个目录下的内容上传到 linux 的 /home/Projects/FirstCore 目录中。

然后进入/home/Projects/FirstCore 目录 ,执行 : dotnet <你项目名称>.dll

这时候应该能看到你的项目

 asp.net core 1.1 publish to a linux

然后你从你本机可以访问了

但是这种状态下,你一断开连接,或者退出命令行,进程就会退出。

所以我们把进程放到后台执行。

nohup dotnet <你项目名称>.dll &

然后敲两次回车。

这样就算你断开连接,进程也还在。