本文主要描述.NET CORE在Ubuntu上“自包含应用”不一来.NET SDK发布(类似于golang的方式)
1.用rider或者直接用dotnet new方式创建一个项目;可以看到产生了两个文件
dotnet new
会创建一个最新的 project.json
文件,其中包含生成控制台应用所必需的 NuGet 依赖项。 它还将创建 Program.cs
,这是包含应用程序的入口点的基本文件。
2.vim编辑project.json
A.去除 "type": "platform" 节点(如果以托管代码方式发布,则不用修改)
B.添加runtimes节点,在节点下添加"ubuntu.16.04-x64":{}
3.加载依赖项树
dotnet restore
调用到 NuGet 以恢复依赖项树。 NuGet 分析 project.json
文件、下载文件中所述的依赖项(或从计算机缓存中获取)并编写 project.lock.json
文件。 需要 project.lock.json
文件才可进行编译和运行。
project.lock.json
文件是 NuGet 依赖项和其他描述应用的信息的持久化完整图片集。 此文件由其他工具(如 dotnet build
和 dotnet run
)读取,让它们可以使用正确的 NuGet 依赖项和绑定解决方法集处理源代码。
4.
$ dotnet run 编译并运行(当测试使用,可以直接到第五步)
dotnet run
调用 dotnet build
来确保已生成要生成的目标,然后调用 dotnet <assembly.dll>
运行目标应用程序。
5.dotnet build
6.通过dotnet publish发布(发布的时候选着runtimes里面的节点项,如:ubuntu.16.04-x64,如果不选则默认第一个)
7.发布以后进入ConsoleApp1/bin/Debug/netcoreapp1.0/ubuntu.16.04-x64目录下
注意:是特定平台下的库(这儿是ubuntu.16.04-x64)
8.进入后通./运行文件名称
注:这儿的运行文件名称,win平台下是exe,linux下无后缀名