Как исправить 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".
Я не могу скомпилировать и отладить проект. Кроме того, когда я открыл вкладку отладки в свойствах проекта, VS потерпел крах.
Выход ДНВМ при открытии решения:
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?
8 ответов
Это известная проблема.
ASP.NET 5: в Windows 7 с пакетом обновления 1 (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, запустите $PsVersionTable
команда ( подробности).
Ссылки:
Установите последнюю версию, открыв консоль и запустив:
dnvm upgrade
Если вы снова откроете VS, вы сможете скомпилировать.
Если это не работает, попробуйте удалить C:\Users\username\.dnx
папка. Повторно откройте VS и он заново создаст папку.dnx в том же месте, используя только 2 сценария: bin\dnvm.cmd и bin\dnvm.ps1 Примечание. Это приведет к удалению всех уже установленных сред выполнения.
повторный показ dnvm upgrade
и проверьте в свойствах проекта, соответствует ли имеющаяся у вас версия Solution 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
, который ломается, поскольку путь должен быть указан. Более подробная информация доступна по запросу, который я открыл по адресу:
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 введите эту команду
dnvm установить 1.0.0-бета5
уверен, что таким образом можно решить вашу проблему.!
Моя версия powershell была 3.0, тогда я:
- Установите powershell v.4 из:
https://www.microsoft.com/en-us/download/details.aspx?id=40855
- Перезагрузить windows
Это решит мою проблему.
Пытаться
dnvm update-self
dnvm install -u -r clr -OS win -a x86 beta5 -ngen
важны -u
параметр (нестабильный) и beta5
Строка версии.
У меня была похожая проблема ранее сегодня, и способ, которым мне удалось решить ее после прочтения комментариев на этой странице, был очень прямым.
Прежде всего я должен сказать, что у меня уже был установлен 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 прямо сейчас и на вкладке "Проект" -> "Свойства" -> "Приложение". Теперь вы можете указать версию DNX SDK, которую вы хотите использовать, из тех, которые у вас уже доступны.
5.- Перестройте свое решение, и теперь все должно быть в порядке.
Хороший!
Если у кого-то есть проблемы с dnx, недоступными в Visual Studio 2015, во время просмотра некоторых устаревших руководств (таких как я), проверьте ссылку ниже
Релиз RC2.NET Core и ASP.NET Core 1.0 перенесен из DNX в.NET Core CLI.
В таблице на связанной странице вы увидите соответствие между командами DNX/DNU и их аналогами CLI. например:
dnx run
становится dotnet run