【发布时间】:2016-05-25 11:16:26
【问题描述】:
在 DNX 上,当我们使用dnu publish 发布一个应用程序时,我们会为project.json 中定义的每个命令获得一个脚本,该脚本使用dnx.exe 执行所需的操作。这里的重点是应用程序本身的执行是由dnx 完成的。
据我了解,DNX 是虚拟机(CLR 或 CoreCLR)与操作系统之间的接口。在这种情况下,调用 DNX 将启动选择的虚拟机,处理依赖关系并在那里启动应用程序。
有了新的 .NET CLI,情况就不同了。当我们使用dotnet publish 发布应用程序时,除了其他内容之外,我们还得到文件 projectname.dll、projectname.pdb 和一个本机可执行文件 projectname em>。
这里的执行是直接通过应用程序完成的。没有中间过程的软件。我们运行本机可执行文件,据我了解,它会启动 CLR、与操作系统交互并运行应用程序。
主要区别在于 DNX 在执行应用程序的操作系统中安装了一个独特的软件。为每个应用程序使用 .NET CLI,我们有一个本机可执行文件,似乎可以完成 DNX 的工作。
似乎从一种方法到另一种方法发生了巨大转变。我的问题是:这种巨大转变的动机是什么?为什么要放弃第一种方法并转而使用第二种方法来执行应用程序?
【问题讨论】:
-
它被宣传为一种更简单的做事方式,无需争论 dnvm/dnu/dnx。您不必使用它。
标签: .net architecture publish dnx .net-core