DNX 不工作

DNX does not work

我已经在 windows 服务器 2008 上成功安装了 dnvm。 但是当我 运行 "dnx" 时,什么也没有显示。没有这样的错误消息:

C:\Windows\system32\dnx
C:\Windows\system32\

有人遇到同样的问题吗?

安装了 DNVM 并不意味着您也安装了 DNX。 运行 以下命令获取最新的稳定版本:

dnvm upgrade

那么你应该可以 运行 dnxdnu.

首先你需要了解DNX的结构。默认情况下,它安装在 %USERPROFILE%\.dnx 中。在其中,您应该找到 runtimes 文件夹,其中包含所有已安装的 CLR,例如

  • dnx-clr-win-x86.1.0.0-beta4
  • dnx-clr-win-x86.1.0.0-beta6-11938

他们每个人都有自己的 bin 文件夹,其中包含 dnx.exednu.cmd。这些就是您要找的。所以基本上在执行 dnvm upgrade 之后(正如@tugberk 所建议的)DNVM 从提要安装最新的 DNX,将其标记为默认值并将其添加到用户的 PATH 变量中。您的 PATH 可能由于某种原因尚未更新,我建议您通过包含所需 CLR 版本的路径来手动更新。

也可以通过添加 -g 标志将 CLR 安装到计算机范围的位置。

尝试运行后:C:\>dnx

输出:

Microsoft .NET Execution environment CLR-x86-1.0.0-beta6-11938
Usage: dnx [options] ...

关于 DNVM 的详细文档 - ASP.NET Home / Version Manager

您可以 运行 在同一台机器上同时安装不同版本的 dnvm,因此安装程序不会在用户的 PATH 变量中设置 dnx 的值作为安装的一部分,因为如果您已经有另一个安装的 dnvm 版本,这可能会导致使用现有版本的任何东西出现意外结果。

如果您想看看发生了什么,请执行以下操作(转述自 another answer I wrote on this issue):

先做:

dnvm upgrade

这会获取最新版本的 dnvm 并将其设置为该命令提示符会话的默认版本。

然后你可以列出你机器上安装的ASP.NET5的所有版本如下:

dnvm list

然后您可以将该列表中的一项设置为默认项,例如(注意:实际版本可能会有所不同,具体取决于您查看此答案的时间):

dnvm use 1.0.0-rc1-update1 -r clr -arch x64 -p

末尾的 -p 表示 'persist' 并且该设置将保留您刚刚 select 到进程(会话)PATH 和用户路径变量。坚持用户 PATH 意味着默认值随处可用。

如果您不使用 -p,那么您可以 select 一个仅用于该命令提示符会话的版本。

之后您应该可以按预期使用 dnx