macOS上开发.NET Core项目并部署到CentOS

一、使用yoeman脚手架工具构建项目

(一)安装yoeman

yoeman是脚手架工具,主要包括yo、Grunt、Bowert等,可以自动化构建许多不同类型的项目,包括ASP.NET Core项目,介绍:http://yeoman.io/

安装之前,确保系统中已经安装Node.js,这样才可以使用npm命令进行安装。

安装yo(-g进行全局安装):

$npm install -g yo

如果npm安装太过缓慢,可以使用阿里的镜像,方法详见:https://npm.taobao.org

(二)安装generator-aspnet

generator-aspnet是asp.net core的构建器,需要安装;

generator-aspnet依赖bower工具,也要一起安装。

$npm install -g bower
$npm install -g generator-aspnet

(三)使用yo工具构建ASP.NET Core项目

终端中输入命令

yo aspnet

可以选择多个项目模板,这里以Web Application为例。

然后选择安装Bootstrap,接着输入项目名称

二、使用dotnet命令初始化项目

安装.NET Core SDK,需要安装1.0 RC3及以上版本,如果低于这个版本,使用“dotnet restore”还原命令不能成功,案例见:http://stackoverflow.com/questions/42011846/new-dotnet-core-project-cannot-restore,最新的RC版本在这里下载:https://www.microsoft.com/net/download/core

运行Web程序命令:

cd YoAppDemo
dotnet restore
dotnet run

保持窗口不要关闭,接着打开网址:http://localhost:5000,查看模板显示效果。

三、使用VS Code开发项目

 (一)安装VS Code,下载地址:http://www.vscode.org

安装C#、ASP.NET Core Snippets等插件,如图

(二)使用VS Code打开项目目录进行开发

这里要注意两点:

1. 如果是初次安装VS Code,在进行调试时,会弹出错误对话框,提示.NET Core Debugger等工具未下载安装,解决办法是打开一个工程文件,VS Code会自动安装OmniSharp、.NET Core Debugger等工具。如果不能自动安装,打开“命令面板”,运行“Restore Packages”进行安装。安装速度很慢,FQ后效果好些。

如果这几个工具没有安装完整,在进行程序调试时,还可能会出现MSBUILD错误,无法进行编译。

2. 调试不成功的另一个原因,检查lanuch.json文件中“program”后的相应字段是否已经自动替换,如果未替换需要手动替换。

三、部署到CentOS

(一)部署之前,确保服务器中已经安装.NET Core。安装时需要注意:就是开发端使用的.NET Core版本要与部署服务器所用的版本的一致(我安装的都是1.0 RC4),

安装步骤:

wget https://go.microsoft.com/fwlink/?linkid=841688
mkdir /opt/dotnet
tar zxf dotnet.tar.gz -C /opt/dotnet
ln -s /opt/dotnet/dotnet /usr/local/bin

查看是否安装成功

dotnet --version

 (二)macOS中发布程序

进入程序目录,终端中执行命令

dotnet publish

 然后进入程序目录下的Debug目录,将文件夹上传到CentOS服务器即可。

这里需要注意的是,使用Win10+VS2015的开发环境,发布到CentOS时需要修改Project.json文件,在runtimes节点增加CentOS相应配置,并在使用发布命令时,需要指定平台参数,比如:dotnet publish -r centos.7-x64,但经过测试,macOS+Yoeman+Dotnet core 1.0 rc4+VS Code开发的.NET Core程序在发布时不用指定平台参数,在CentOS服务器中也可以正常运行。

(三)CentOS中运行Web程序

进行程序目录,运行命令

dotnet run

 这里可能有一个BUG,即使macOS和CentOS中安装的.NET Core都是1.0 RC4版本,但在CentOS中还会报错,提示找不到Microsoft.NETCore.App的1.0.4版本

 

我的解决办法是找到dotnet安装目录下的“Microsoft.NETCore.App”目录(如/opt/donet/shared/Microsoft.NETCore.App),然后将名为“1.0.3”的文件夹直接改为“1.0.4”,之后运行成功。

还可以使用Nginx配合,具体办法见之前的文章:http://www.cnblogs.com/zhangfeistudio/p/6441508.html

原文地址:https://www.cnblogs.com/zhangfeistudio/p/6445596.html