Не удалось разрешить следующие зависимости для целевой инфраструктуры 'DNX, Version = v4.5.1'

Я использую ASP.NET 5.0, и я хотел запускать только в новом Core CLR, поэтому я удалил "dnx451": { } из зависимостей в моем файле project.json. Теперь я получаю следующую ошибку при запуске в IIS:

Не удалось разрешить следующие зависимости для целевой структуры 'DNX, Version = v4.5.1': Microsoft.AspNet.Mvc 6.0.0-beta4 Microsoft.AspNet.Server.IIS 1.0.0-beta4    Microsoft.AspNet.Server.WebListener 1.0.0-beta4    Microsoft.AspNet.StaticFiles 1.0.0-beta4

Насколько я понимаю, AspNet.Mvc 6 будет работать в Core CLR? Почему тогда я должен включать dnx451 в качестве зависимости?

Мой project.json файл:

{
 "webroot": "wwwroot",
 "version": "1.0.0-*",
 "dependencies": {
 "Microsoft.AspNet.Mvc": "6.0.0-beta4",
 "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
 "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
 "Microsoft.AspNet.StaticFiles": "1.0.0-beta4"
 },
 "commands": {
 "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
 },
 "frameworks": {
 "dnxcore50": { }
 },
 "exclude": [
 "wwwroot",
 "node_modules",
 "bower_components"
 ],
 "publishExclude": [
 "node_modules",
 "bower_components",
 "**.xproj",
 "**.user",
 "**.vspscc"
 ]
}
2 ответа

Задание dnxcore50 в качестве зависимостей в project.json - это не то же самое, что сообщать Solution о таргетинге на dnx. Чтобы исправить это, мне пришлось изменить файл решения global.json для использования определенной версии dnx (т.е. Конкретного исполняемого файла .Net). Мне также пришлось изменить несколько операторов using для использования новых базовых библиотек CLR вместо библиотек .Net 4.5. Вы получите предупреждения об ошибках и предупреждения об ошибках.

Файл global.json можно найти в разделе Решение node. Мне пришлось добавить часть версии sdk:

{
 "projects": [ "src", "test" ],
 "sdk": {
 "version": "1.0.0-beta4"
 }
}

Обратите внимание, что вы также можете редактировать это в графическом интерфейсе:

Настоятельно рекомендуем недавно загруженные видеоролики ASP.NET и ASP.NET Deep Dive с версии 2015, доступные на Channel 9.


У меня была эта ошибка при публикации моего веб-приложения DNX. Оказалось, это произошло потому, что я обновился с Beta5 до Beta6, но пренебрег обновлением моей публикации powershell script, которая выглядит так:

$thisFolder = (Get-Item -Path ".\" -Verbose).FullName
$webFolder = "$thisFolder\..\src\Web.UI"
dnu publish $webFolder `
 --out \\uatserver\uatshare ` 
 --configuration DEBUG ` 
 --no-source `
 --runtime dnx-clr-win-x64.1.0.0-beta5

Итак, в последнем параметре моя публикация все еще говорила, что он нацелен на бета5 вместо бета6.

licensed under cc by-sa 3.0 with attribution.