Как исправить DNX/DNVM в Visual Studio 2015?
Сегодня я установил VS 2015 на Windows 7 x64. В основном, чтобы протестировать новые .Net Core и т.д. И для тестирования я создал новое решение С# "Console Application (Package)" и получил это сообщение:
Версия 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?
Ответы
Ответ 1
Это известная проблема.
ASP.NET 5: в Windows 7 SP1 SDK DNX не может быть установлен без 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, запустите команду $PsVersionTable
(подробнее).
Ссылки:
Ответ 2
Установите последнюю версию, открыв консоль и запустив ее:
dnvm upgrade
Если вы снова открываете VS, вы должны скомпилировать.
Если это не сработает, попробуйте удалить папку C:\Users\username\.dnx
. Повторно запустите VS и он заново создаст папку .dnx в том же месте, где будет всего 2 скрипта: bin\dnvm.cmd и bin\dnvm.ps1. Примечание. Это приведет к удалению всех уже установленных сред выполнения.
Rerun dnvm upgrade
и проверьте свойства проекта, если версия решения DNX SDK соответствует установленному.
Ответ 3
У меня также есть эта проблема. Похоже, что это связано с проблемой, когда dnvm.ps1 script не указывает путь установки. Команда 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
, который прерывается по мере того, как путь должен быть указан. Дополнительная информация доступна по запросу на растяжение, которое я открыл по адресу:
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 заново создала папку.
Ответ 4
Я мог бы исправить это следующим образом:
В командной строке Developer Command для 2015 введите эту команду
dnvm install 1.0.0-beta5
уверен, что этот способ поможет исправить вашу проблему.!
Ответ 5
Моя версия powershell была 3.0, затем I:
- Установить powershell v.4 из:
https://www.microsoft.com/en-us/download/details.aspx?id=40855
- Перезагрузка окон
Это решает мою проблему.
Ответ 6
У меня была аналогичная проблема ранее сегодня, и способ, которым я смог ее решить после прочтения комментариев на этой странице, был очень прямым.
Прежде всего, я должен сказать, что у меня уже установлен PowerShell 3.0 (не для того, чтобы установить его, кажется, основным источником этой проблемы для большинства людей), и все же у меня все еще была такая же проблема.
Поэтому вместо необходимости редактировать и изменять скрипты powershell, чтобы заставить их работать с путями с пробелами и т.д., как это было предложено, я просто сделал следующее (намного проще):
1.- Перейдите в "C:\Program Files (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 и на вкладке Project → Properties → Application там, где вы теперь можете указать версию SDK SDK, которую вы хотите использовать, из тех, которые у вас теперь доступны
5.- Восстановите свое решение, и теперь оно должно быть прекрасным.
Приятный!
Ответ 7
попробовать
dnvm update-self
dnvm install -u -r clr -OS win -a x86 beta5 -ngen
важны параметр -u
(неустойчивый) и строка версии beta5
.