Asp.net 5编译过程使用dnvm

时间:2015-07-16 01:27:11

标签: asp.net-core jit coreclr

任何人都可以向我解释一下Asp.net5应用程序的编译和执行是如何工作的。

我是.net环境的新手

几个问题 当您使用VS 2015构建应用程序时(按F5),我知道的步骤是

  • 代码转换为CIL。 (它的名字是什么?是Rosyln Compiler )
  • 此CIL代码被解释为机器代码

现在当我使用dnvm运行应用程序时会发生什么,

Error:(8) A problem occurred evaluating project ':mopub-sdk'.
Failed to apply plugin [id 'org.robolectric'] 
Plugin with id 'org.robolectric' not found.

由于

1 个答案:

答案 0 :(得分:5)

首先,DNVM不用于编译或运行您的应用。 DNVM是DotNet Version Manager的首字母缩写,用于管理不同的.NET版本。例如,您可以使用一个使用.NET Core的应用程序和另一个使用完整.NET Framework的应用程序。前者是后者的云优化,跨平台版本,可让您将应用程序与应用程序一起部署。阅读更多关于差异的here

  1. 如何编译?在Windows上"Roslyn"用于编译您的应用程序。在Linux / Mac上,Mono目前已被使用,但一旦在这些平台上受支持,将被Roslyn取代。
  2. CoreCLR做什么? CoreCLR是.NET Core的运行时。
  3. CoreCLR与CLR有何不同? CoreCLR是.NET Core的运行时,CLR是.NET Framework的运行时。
  4. 当我们dnu restore时会发生什么?您的应用程序的依赖项将被下载并添加到packages目录中。
  5. 当我们dnx . exe时会发生什么?它将在当前文件夹中查找project.json文件(用点表示)并调用project.json文件中配置的'exe'命令。
  6. 在CIL生成的哪个阶段,CIL存储在哪里?编译时生成CIL。例如,当您dnx . run时,应用程序内置于内存中。另一方面,如果您执行dnu build,它将为您的存储CIL的应用生成程序集(例如dll:s)。
  7. 在什么阶段使用JIT? JIT代表即时编译,在执行应用程序时执行。它将CIL代码转换为本机平台特定代码。
  8. 您可以在ASP.NET 5 documentation(正在进行的工作)中找到更多信息。