.Net Core是微软专门为跨平台运行.Net设计的一套方案,API和.Net Framework可能有一定的差别,我打算在Linux上试试。
我的服务器是Debian7的,按照官方的步骤安装发现libunwind8无法安装,在网上搜索一番找到解决方案。
主要的原因是gcc版本太低,于是问题变成了Debian上如何升级gcc。
步骤如下:
在/etc/apt/sources.list文件中加入下行
deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib
保存后在控制台输入
$ sudo aptitude update
$ sudo aptitude install gcc-4.8/Jessie
更新完成后按照微软官方步骤就能装好了:
sudo apt-get install curl libunwind8 gettext
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835021
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
安装完成后实验一下。
第一步是创建一个空的.net项目:
mkdir hwapp
cd hwapp
dotnet new
dotnet new命令是创建一个新项目,项目的名称就是文件夹hwapp的名称。
再接下来是编译运行:
dotnet restore
dotnet run
dotnet restore是分析文件夹下的project.json文件,看看有没有依赖的库,或者配置变化。如果有依赖的库而本地没有的话,会调NuGet下载。(微软没再坚持使用笨重庞大的xml了,赞一下)
dotnet run是编译项目并运行。和visual studio一样,会在项目目录下生成bin/目录和程序。
默认的情况下,生成的是一个dll文件,没有exe。如果想生成exe,需要修改project.json文件。
首先要删除"dependencies"这一段中的"type": "platform"定义。(有点奇怪)
然后加入目标平台的定义:
"runtimes":{
"debian.8-x64":{}
}
添加在"frameworks"的下面,例如:
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0"
}
},
"imports": "dnxcore50"
}
},
"runtimes":{
"debian.8-x64":{}
}
我选的目标系统是debian8,还有更多的系统定义可以看这个网页
然后重新执行
dotnet restore
dotnet build
注意,如果只是想编译而不运行,用build命令。这样在Debug/netcoreapp1.1/文件夹里面,就会生成windows开发者熟悉的exe文件了,可以直接运行一下:
# ./hwapp
Hello World!
网友评论