Пакет Dnx Runtime должен быть установлен

В VS2015, работающем на компьютере с Windows 10 x64, я получаю сообщение об ошибке ниже при попытке создать веб-проект .net core.

The Dnx Runtime package needs to be installed. See output window for more details

Вот журнал выходного окна (только соответствующая часть)

1>Done building target "BeforeCompile" in project "WebApplication1.xproj".
1>       Target "_TimeStampBeforeCompile" skipped, due to false condition; ('$(RunPostBuildEvent)'=='OnOutputUpdated' or ('$(RegisterForComInterop)'=='true' and '$(OutputType)'=='library')) was evaluated as (''=='OnOutputUpdated' or (''=='true' and 'Library'=='library')).
1>     1>
1>Target "GetRuntimeToolingPathTarget" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DNX\Microsoft.DNX.targets" from project "C:\Users\v-prchep\Documents\Visual Studio 2015\Projects\WebApplication1\src\WebApplication1\WebApplication1.xproj" (target "CoreCompile" depends on it):
1>       Using "GetRuntimeToolingPath" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DNX\Microsoft.DNX.Tasks.dll".
1>       Task "GetRuntimeToolingPath"
1>       Done executing task "GetRuntimeToolingPath".
1>       Using "Error" task from assembly "Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>       Task "Error"
1>     1>
1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DNX\Microsoft.DNX.targets(126,5): error : The Dnx Runtime package needs to be installed. See output window for more details.
1>       Done executing task "Error" -- FAILED.
1>     1>
1>Done building target "GetRuntimeToolingPathTarget" in project "WebApplication1.xproj" -- FAILED.
1>     1>
1>Target "_CheckForCompileOutputs" in file "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\v-prchep\Documents\Visual Studio 2015\Projects\WebApplication1\src\WebApplication1\WebApplication1.xproj" (target "_CleanGetCurrentAndPriorFileWrites" depends on it):
1>     1>
1>Done building target "_CheckForCompileOutputs" in project "WebApplication1.xproj".
1>       Target "_SGenCheckForOutputs" skipped, due to false condition; ('$(_SGenGenerateSerializationAssembliesConfig)' == 'On' or ('@(WebReferenceUrl)'!='' and '$(_SGenGenerateSerializationAssembliesConfig)' == 'Auto')) was evaluated as ('Off' == 'On' or (''!='' and 'Off' == 'Auto')).
1>     1>
1>Target "_CleanGetCurrentAndPriorFileWrites" in file "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\v-prchep\Documents\Visual Studio 2015\Projects\WebApplication1\src\WebApplication1\WebApplication1.xproj" (target "_CleanRecordFileWrites" depends on it):
1>       Task "ReadLinesFromFile"
1>       Done executing task "ReadLinesFromFile".
1>       Using "ConvertToAbsolutePath" task from assembly "Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>       Task "ConvertToAbsolutePath"
1>       Done executing task "ConvertToAbsolutePath".
1>       Task "FindUnderPath"
1>         Comparison path is "C:\Users\v-prchep\Documents\Visual Studio 2015\Projects\WebApplication1\src\WebApplication1".
1>       Done executing task "FindUnderPath".
1>       Task "FindUnderPath"
1>         Comparison path is "..\..\artifacts\bin\WebApplication1\".
1>       Done executing task "FindUnderPath".
1>       Task "FindUnderPath"
1>         Comparison path is "..\..\artifacts\obj\WebApplication1\Debug\".
1>       Done executing task "FindUnderPath".
1>       Task "RemoveDuplicates"
1>       Done executing task "RemoveDuplicates".
1>     1>
1>Done building target "_CleanGetCurrentAndPriorFileWrites" in project "WebApplication1.xproj".
1>     1>
1>Target "_CleanRecordFileWrites" in file "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\v-prchep\Documents\Visual Studio 2015\Projects\WebApplication1\src\WebApplication1\WebApplication1.xproj" (target "CoreBuild" depends on it):
1>       Task "RemoveDuplicates"
1>       Done executing task "RemoveDuplicates".
1>       Task "MakeDir"
1>       Done executing task "MakeDir".
1>       Task "WriteLinesToFile"
1>       Done executing task "WriteLinesToFile".
1>     1>
1>Done building target "_CleanRecordFileWrites" in project "WebApplication1.xproj".
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.02
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Заглянув в лог, я проверил Microsoft.DNX.targets файл и нашел эту строчку

<Error Text="The Dnx Runtime package needs to be installed. See output window for more details." Condition="!Exists('$(RuntimeToolingExe)')" />

Похоже, он пытается узнать путь dnx от $(RuntimeToolingExe), но я не могу понять, где он устанавливается.

Примечание. Среды выполнения dnx уже установлены, и я могу запустить приложение из командной строки, используя следующую команду

dnx web

Приложение работает нормально с этим. Я считаю, что это проблема с инструментами VS2015, которую я не могу понять. Не могли бы вы помочь мне в этом?

PS: выполнил все шаги, указанные в этой теме SO вроде ничего не работает.


person NaveenBhat    schedule 25.02.2016    source источник


Ответы (1)


arrow_upward
4
arrow_downward

Проблема окончательно решилась после удаления styleCop. Похоже, что StyleCop переопределял путь dnx, который искала Visual Studio. Однако это всего лишь предположение, я не совсем уверен, почему это сработало!

person NaveenBhat    schedule 29.02.2016
comment
У меня тоже была такая же проблема. Мне удалось отследить проблему до Microsoft.DNX.targets. Для параметра RuntimeToolingDirectory следует указать путь dnx и использовать версию/среду выполнения и т. д. в файле global.json для определения правильной среды выполнения. например %USERPROFILE%\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update2 По какой-то причине с установленным stylecop просто использовалось имя версии, например. 1.0.0-rc1-update2. Я понятия не имею, почему, но большое спасибо, что указали мне на stylecop. Не подумал бы об этом и через миллион лет. - person Mark; 03.05.2016
comment
Что мне кажется странным, так это то, что я получаю это состояние только тогда, когда запускаю проект Empty. Если я выберу Веб-API или Веб-приложение (почти одно и то же, у API есть представления??), я не получаю такой ошибки, даже если установлен StyleCop. Занят установкой StyleCop, чтобы посмотреть, смогу ли я получить работающий Empty. Расширение ReSharper StyleCop мне больше подходит, так как оно работает в режиме реального времени. - person ProfK; 08.05.2016
comment
Я имел в виду, занят удалением StyleCop.... Это не помогло. Но в моем global.json он имеет только название версии: sdk: { version: 1.0.0-rc1-update1 } И мне интересно, почему я на update1 после вчерашнего запуска обновления 2 для VS2015. - person ProfK; 08.05.2016