Как исправить DNX / DNVM в Visual Studio 2015?

сегодня я установил VS 2015 на Windows 7 x64. В основном для тестирования новых функций .Net Core и т. д. И для теста я создал новое решение c# "консольное приложение (пакет)" и получил следующее сообщение:

DNX SDK версия ' dnx-clr-win-x86.1.0.0-beta5' не удалось установить. Решение будет использовать DNX SDK версии " dnx-clr-win-x86.1.0.0-beta5 ' для этого сеанса.

Я не могу скомпилировать и отладить проект. Кроме того, когда я открыл вкладку debug в свойствах проекта, тогда Против разбился.

вывод 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 FilesMicrosoft DNXDnvmdnvm.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 FilesMicrosoft DNXDnvmdnvm.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 FilesMicrosoft DNXDnvmdnvm.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?

8 ответов


Это известная проблема.

ASP.NET 5: В Windows 7 SP1 DNX SDK не может быть установлен без В PowerShell 3.0.

симптомы

при создании 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, запустите (подробности).

ссылки:


установить последнюю версию открыв консоль и работает:

dnvm upgrade

Если вы снова откроете VS, вы сможете скомпилировать.

Если это не работает, попробуйте удалить C:\Users\username\.dnx папка. Откройте VS, и он воссоздаст .папка dnx в том же месте только с 2 скриптами: bin\dnvm.cmd и bin\dnvm.ps1 Примечание: это удалит все уже установленные среды выполнения.

повтор dnvm upgrade и проверить свойства проекта, если решение DNX SDK версия у вас есть совпадения с установленным.


у меня также есть эта проблема. Похоже, это связано с проблемой, где dnvm.сценарий ps1 не цитирует путь установки. Команда dnvm install "C:\Program Files (x86)\Microsoft Web Tools\DNX\dnx-clr-win-x86.1.0.0-beta5.nupkg" из Visual Studio вспоминается как dnvm-install C:\Program Files (x86)\Microsoft Web Tools\DNX\dnx-clr-win-x86.1.0.0-beta5.nupkg, который ломается, поскольку путь должен быть указан. Более подробная информация доступна по запросу pull, который я открыл по адресу:

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

в качестве обходного пути, решение для меня было изменить следующим в "C:\Program Файлы\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 введите эту команду

dnvm установить 1.0.0-beta5

конечно, этот способ может исправить вашу проблему.!


моя версия powershell была 3.0, затем я:

  1. установите powershell V. 4 из:

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

  1. перезагрузите windows

Это решает мою проблему.


У меня была аналогичная проблема ранее сегодня, и способ, которым мне удалось решить ее после прочтения комментариев на этой странице, был очень прямым.

прежде всего, я должен сказать, что у меня уже был установлен PowerShell 3.0 (не установленный, похоже, является основным источником этой проблемы для большинства людей), и все же у меня все еще была эта же проблема.

поэтому вместо того, чтобы редактировать и изменять сценарии powershell, чтобы заставить их работать с путями с пробелами и т. д., Как было предложено, я просто сделал следующее (намного проще):

1.- Иди в ... C:\Program файлы (x86)\Microsoft Web Tools\DNX" в проводнике Windows и "копировать" все его содержимое (в основном все пакеты и их подпапки)

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.- Перестройте свое решение, и теперь все должно быть хорошо

молодец!


попробовать

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

важны (нестабильная) и beta5 версия строки.


Если у кого-то есть проблемы с dnx, недоступные в Visual Studio 2015 при просмотре некоторых устаревших учебников ( например, меня), проверьте ниже ссылке

выпуск RC2 .NET Core и ASP.NET ядро 1.0 перемещено из DNX к CLI .NET Core.

в таблице на связанной странице вы будете сопоставление между командами DNX/DNU и их аналогами CLI. например:

dnx run становится dotnet run