.NET Core试用感受
环境:VS2017社区版,.net core 2.0 (win64, sdk2.1.2, runtime 2.0.7)
开发:sdk
运行服务器:runtime (包括.net core runtime和asp.net core runtime,分开的)
以上类似于jdk和jre的关系
其中windows的runtime有个版本是打包了runtime和Hosting(一个IIS模块,asp.net core module for iis,注意这个版本一定要和runtime匹配),在IIS上配置和之前没大的区别,就是程序池的.net framework要设置成“无托管代码”。
本质上并不是由IIS进程直接处理asp.net core上,这里IIS只是充当一个代理的作用,asp.net core有自己的宿主方式。

#直接运行asp.net core网站,默认为localhost:5000 dotnet app.dll
#运行控制台程序 (主程序的dll),core下没有exe dotnet console1.dll
这点像极了python,自己运行为python xx.py,前面加个nginx,后面自己运行比如用tornado。
安装后的.netcore在C:\Program Files\dotnet

在Linux上,本文在CentOS7测试过,按官方安装.net core和asp.net core的runtime (也可安装core sdk,如果需要开发,create, publish等)。
运行也很简单,"dotnet xx.dll"即可,如果是web,加个nginx之类的做个反向代理。
体验上看,和Mono没什么差别,Mono上运行是"mono xx.exe",就是安装core比安装mono要简单省事的多。
关于发布
命令行发布
dotnet publish -o \bin\pub
发布的文件比较干净,wwwroot目录,程序dll,及view视图会变成x.PrecompiledViews.dll,没有其它库文件。
用VS2017发布,有个目标运行时

发布后会带上环境运行的库文件。

publish下包括了所有库文件,程序dll,及view目录(这点像之前的mvc发布后的)
注意到项目文件里有个这样的配置
<ItemGroup> <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.7" /> </ItemGroup>
All ? 所以把所有库文件都发布了? 如何确认自己需要的,只添加自己需要的。
浙公网安备 33010602011771号