Необходимо установить пакет Dnx Runtime — размещенный контроллер сборки

Я разрабатываю свое первое приложение ASP.NET 5, и у меня есть некоторые проблемы с размещенной сборкой в ​​Visual Studio Team Services (была Visual Studio Online). Я получаю сообщение об ошибке:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DNX\Microsoft.DNX.targets(126,5): Ошибка: необходимо установить пакет Dnx Runtime.

На одну строку раньше я вижу следующее сообщение о сборке: Не удается найти среду выполнения DNX dnx-clr-win-x86.1.0.0-beta8 в папке: C:\Users\buildguest.dnx\runtimes

Я нашел решение с помощью сценария Prebuild-Powershell (https://msdn.microsoft.com/Library/vs/alm/Build/azure/deploy-aspnet5)

Примечание. Я добавил проект ASP.Net 5 MVC в существующее решение. У меня нет файла global.json и папки src! Вот почему я адаптировал сценарий следующим образом:

& iex((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))
$dnxVersion = "latest"
& $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -Persistent
Get-ChildItem -Path $PSScriptRoot\..\InternalWeb.Client -Filter project.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 }

Сценарий запускается после шага сборки «Получить исходники» и имеет следующий вывод:

введите здесь описание изображения

Но я получаю все то же сообщение об ошибке! Что не так? Спасибо за помощь! Майкл


person Michael Giger    schedule 16.04.2016    source источник


Ответы (1)


Я столкнулся с той же проблемой, и я нашел решение, которое сработало для меня. Сценарий PowerShell устанавливает последнюю версию среды выполнения или ту, которую вы указали в файле global.json. Так как без файла global.json и настроек по умолчанию это не работало, я добавил файл global.json в папку своего проекта и указал версию, которую использую:

{
    "sdk": {
        "version": "1.0.0-rc1-update1",
        "runtime": "coreclr",
        "architecture": "x86"
    }
}

Первая попытка снова не удалась со следующей ошибкой:

Ожидаемый файл блокировки не существует. Запустите «dnu restore», чтобы создать новый файл блокировки.

Поэтому я добавил dnu restore в конец скрипта PowerShell. Следующая сборка прошла успешно. Может быть, это работает и для вас.

person Proximo    schedule 21.04.2016