58

今天我在 Windows 7 x64 上安装了 VS 2015。主要是为了测试新的 .Net Core 功能等。为了测试,我创建了新的 C#“控制台应用程序(包)”解决方案并得到了这个消息:

DNX SDK 版本“dnx-clr-win-x86.1.0.0-beta5”安装失败。该解决方案将为此会话使用 DNX SDK 版本“dnx-clr-win-x86.1.0.0-beta5”。

我无法编译和调试项目。此外,当我在项目属性中打开调试选项卡时,VS 崩溃了。

我打开解决方案时的 DNVM 输出:

Invoke-Command : The term 'x86' is not recognized as the name of a cmdlet, func
tion, script file, or operable program. Check the spelling of the name, or if a
 path was included, verify that the path is correct and try again.
C:\Program Files\Microsoft DNX\Dnvm\dnvm.ps1:1451 ????:27
+             Invoke-Command <<<<  ([ScriptBlock]::Create("dnvm-$cmd $cmdargs")
)
    + CategoryInfo          : ObjectNotFound: (x86:String) [Invoke-Command], C 
   ommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Co 
   mmands.InvokeCommandCommand

Invoke-Command : The term 'x86' is not recognized as the name of a cmdlet, func
tion, script file, or operable program. Check the spelling of the name, or if a
 path was included, verify that the path is correct and try again.
C:\Program Files\Microsoft DNX\Dnvm\dnvm.ps1:1451 ????:27
+             Invoke-Command <<<<  ([ScriptBlock]::Create("dnvm-$cmd $cmdargs")
)
    + CategoryInfo          : ObjectNotFound: (x86:String) [Invoke-Command], C 
   ommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Co 
   mmands.InvokeCommandCommand

Invoke-Command : The term 'x86' is not recognized as the name of a cmdlet, func
tion, script file, or operable program. Check the spelling of the name, or if a
 path was included, verify that the path is correct and try again.
C:\Program Files\Microsoft DNX\Dnvm\dnvm.ps1:1451 ????:27
+             Invoke-Command <<<<  ([ScriptBlock]::Create("dnvm-$cmd $cmdargs")
)
    + CategoryInfo          : ObjectNotFound: (x86:String) [Invoke-Command], C 
   ommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Co 
   mmands.InvokeCommandCommand

任何想法如何解决它?

另外,我之前已经分别安装了 VS 2015 Preview 和 DNX/DNVM。但我认为,我在安装 VS 2015 之前将其完全删除。这会以某种方式影响当前的 VS 安装吗?

4

8 回答 8

55

这是一个已知问题

ASP.NET 5:在 Windows 7 SP1 上,如果没有 Powershell 3.0,则无法安装 DNX SDK。

症状

创建 ASP.NET 5 项目时,您会收到以下错误消息:

DNX SDK 版本“dnx-clr-win-x86.1.0.0-beta5”安装失败。该解决方案将为此会话使用 DNX SDK 版本“dnx-clr-win-x86-1.0.0-beta5”

解决方法

要解决此问题,请安装 Windows Powershell 3.0(或更高版本)并尝试再次创建项目。要查看您当前的 PS 版本,请运行$PsVersionTable命令(详细信息)。

链接:

于 2015-07-21T20:44:58.247 回答
14

通过打开控制台并运行来安装最新版本:

dnvm upgrade

如果您重新打开 VS,您应该能够编译。

如果这不起作用,请尝试删除该C:\Users\username\.dnx文件夹。重新打开 VS,它将在同一位置重新创建 .dnx 文件夹,其中只有 2 个脚本:bin\dnvm.cmd 和 bin\dnvm.ps1注意:这将删除所有已安装的运行时

重新运行dnvm upgrade并在项目属性下检查您拥有的解决方案 DNX SDK 版本是否与已安装的版本匹配。

于 2015-08-13T15:18:33.810 回答
10

我也有这个问题。它似乎与 dnvm.ps1 脚本未引用安装路径的问题有关。来自 Visual Studio的命令dnvm install "C:\Program Files (x86)\Microsoft Web Tools\DNX\dnx-clr-win-x86.1.0.0-beta5.nupkg"被调用为dnvm-install C:\Program Files (x86)\Microsoft Web Tools\DNX\dnx-clr-win-x86.1.0.0-beta5.nupkg,因为路径应该被引用而中断。有关我在以下位置打开的拉取请求的更多信息:

https://github.com/aspnet/dnvm/pull/357

作为一种解决方法,我的解决方案是在"C:\Program Files\Microsoft DNX\Dnvm\dnvm.ps1"中更改以下内容。这会遍历参数,确保引用任何包含空格或括号的内容。

替换以下行:

$cmdargs = @($args[1..($args.Length-1)])

和:

# Combine arguments, ensuring any containing whitespace or parenthesis are correctly quoted 
ForEach ($arg In $args[1..($args.Length-1)]) {
    if ($arg -match "[\s\(\)]") {
        $cmdargs += """$arg"""
    } else {
        $cmdargs += $arg
    }
    $cmdargs += " "
}

如果您在进行此更改后仍然遇到问题,请删除C:\Users\username\.dnx并重新打开 Visual Studio 以让 Visual Studio 重新创建该文件夹。

于 2015-07-22T18:35:13.573 回答
7

我可以通过这种方式修复它:在 2015 的开发人员命令提示符中输入此命令

dnvm 安装 1.0.0-beta5

确保这种方式可以解决您的问题。!

于 2015-11-09T06:48:00.560 回答
0

尝试

dnvm update-self
dnvm install -u  -r clr  -OS win  -a x86  beta5 -ngen 

重要的是-u参数(不稳定)和beta5版本字符串。

于 2016-02-03T20:58:57.340 回答
0

如果有人在观看一些过时的教程(如我)时遇到 Visual Studio 2015 中不可用的 dnx 问题,请查看以下链接

.NET Core 和 ASP.NET Core 1.0 的 RC2 版本从 DNX 移至 .NET Core CLI。

在链接页面的表格中,您将看到 DNX/DNU 命令与其 CLI 对应项之间的映射。例如:

dnx run 变成dotnet run

于 2018-01-04T13:59:48.063 回答
0

我今天早些时候遇到了类似的问题,在阅读此页面中的评论后,我设法解决它的方式非常简单。

首先,我必须说我已经安装了 PowerShell 3.0(对于大多数人来说,没有安装它似乎是这个问题的主要来源),但我仍然遇到同样的问题。

因此,不必像建议的那样编辑和修改所涉及的 powershell 脚本以使它们与带有空格等的路径一起工作,我只是简单地执行了以下操作(更简单):

1.- 在 Windows 资源管理器中转到“C:\Program Files (x86)\Microsoft Web Tools\DNX”并“复制”其所有内容(基本上是所有包及其子文件夹)

2.-将所有内容“粘贴”到没有空格的路径中。我使用了“C:\Temp\”

3.- 在命令行上运行以下命令(注意现在指示的路径位置中没有空格)

dnvm update-self
dnvm install "C:\Temp\dnx-clr-win-x64.1.0.0-beta5.nupkg"
dnvm install "C:\Temp\dnx-coreclr-win-x64.1.0.0-beta5.nupkg"
dnvm list

4.- 现在打开您的 Visual Studio 解决方案,在您的项目 -> 属性 -> 应用程序选项卡上,您现在可以在其中指定要使用的 DNX SDK 版本

5.- 重新构建您的解决方案,现在应该一切正常

好东西!

于 2015-12-05T01:13:33.663 回答
0

我的powershell版本是3.0,然后我:

  1. 从以下位置安装 powershell v.4:

https://www.microsoft.com/en-us/download/details.aspx?id=40855

  1. 重新启动窗口

这解决了我的问题。

于 2015-10-08T08:18:13.143 回答