一、准备工作
准备工作很简单,甚至可以不用Visual Studio,一只.NET CORE和Runtime即可(你有考虑过世界第一IDE的感受吗)
下载:https://www.microsoft.com/net/download/windows
一路Next 嘟嘟嘟 安装....
二、生成一个ConsoleApp项目
没有了VS怎么生产项目文件呢?其实很简单,只需要一只CMD即可.
1).召唤出cmd(Win+R 输入cmd).
2).打开一只cmd并输入以下命令即可(此处的“e”为项目名称)
dotnet new console -o e
cd e
完成之后你将会看到Program.cs和e.csproj,这说明生成已成功
三、运行
用任意一只文本工具打开Program.cs你会看到以下自动生成的代码
using System; namespace e
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
这里我们就用最简单的Hello World来做示例
在cmd窗口里输入:
dotnet run
简单吧~
此时就可以看到我们的第一个.NET CORE程序啦!
四、发布
.Net Core的发布有两种模式:
他们分别为
- Portable applications(便携应用,需要安装Runtime,体积小,Hello World大约5kb)
- Self-contained application(自宿主应用,自带Runtime,体积较大,Hello World大约65MB)<<看到65M心疼了?不用着急,你可以在发布完成之后对其进行"瘦身"详细请看:https://www.cnblogs.com/yunei/p/7436368.html(作者:宇内流云)
1).发布便携应用:
超级简单,你只需要在cmd中输入
dotnet publish -c release
即可,发布后的文件于:\bin\release\netcoreapp2.0\publish\
2).发布自宿主应用:
此处需要设置运行环境,支持的平台也添加了不少,主流有win,linux,osx等,此处就以win和linux来做示例(由于太穷了,用不起osx,有兴趣的小伙伴可以试一试)
1).打开项目文件e.csproj.此时已自动生成了一些代码
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup> </Project>
我们需要在其PropertyGroup键出添加项<RuntimeIdentifiers>linux-x64;win-x64;osx-x64</RuntimeIdentifiers>,即:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifiers>linux-x64;win-x64;osx-x64</RuntimeIdentifiers>
</PropertyGroup> </Project>
在cmd中输入(代码中的linux-x64可替换成上面添加中的项 如:win-x64 或osx-x64):
dotnet publish -r:linux-x64 -c release
发布完成后的文件于bin\release\netcoreapp2.0\linux-x64\publish中
五、运行
1.便携应用:
Windows
直接点击exe运行,哈哈
Linux及OSX
1).需要安装.net core Runtime 下载: https://www.microsoft.com/net/download/windows(注意看准版本号和系统)
2).在命令提示符中输入 dotnet 你的文件名 例如:dotnet e (此处以 Ubuntu 16.04 x64以示例)
PS:若无法运行请允许文件作为程序运行
2.自宿主应用:
Windows
直接点击exe运行,哈哈
Linux及OSX
1).如图 允许作为程序执行文件
2).在命令提示符中输入 ./你的文件名 例如: ./e
运行成功!(平台:linux-x64 系统:Ubuntu16.04 x64)
这篇文章就结束啦,希望大家多多支持我
如有疑问请联系我的企鹅号 2728578956 (验证码:25432)