Первоначально у меня был рабочий проект ASP.NET 5, который можно было опубликовать в Azure без проблем. Затем я решил разделить DAL на отдельный проект класса, но столкнулся со многими проблемами зависимости. Затем я решил создать пустой проект с пустой библиотекой классов, чтобы узнать, могу ли я решить, в чем проблема, но я даже не могу опубликовать это.Не удается опубликовать ASP.NET 5, который ссылается на библиотеку классов на Azure
Шаги:
- Создать новый ASP.NET 5 Web API проекта Preview Template (также создает решение).
- Добавить библиотеку классов в решение.
- Изменить целевую структуру библиотеки классов на .NET 4.5.1 из 4.6
- Библиотека классов классов из проекта ASP.NET 5.
- Попытка опубликовать.
Это структура проекта:
В результате ASP.NET 5 project.json
:
"frameworks": {
"dnx451": {
"dependencies": {
"ClassLibrary1": "1.0.0-*"
}
},
"dnxcore50": { }
},
Так что ссылки успешно и я могу построить и развернуть на себя хостинг, но если я попытаюсь опубликовать его на Azure, я получаю следующее сообщение об ошибке:
The "Dnu" task failed unexpectedly.
System.Exception:
Microsoft .NET Development Utility CLR-x86-1.0.0-beta6-12256
Copying to output path C:\Users\MyUserDir\AppData\Local\Temp\PublishTemp
Time elapsed 00:00:04.1309210
at Microsoft.DNX.Tasks.Dnu.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder. <ExecuteInstantiatedTask>d__26.MoveNext()
Я использую Visual Studio 2015 и ASP.NET 5 Beta 7.
EDIT: После некоторых играли вокруг, я не думаю, что мой ответ совершенно правильно. Теперь я понимаю, что есть случаи, когда нельзя использовать новый тип библиотеки классов, например. существующих старых библиотеках классов, которые могут оказаться непрактичными для порта. Есть ли способ сделать это?
Я пробовал делать dnu publish
, и он публикует отлично. Затем я выхожу на FTP-сервер на сервер, но затем он дает мне Runtime Error
. Я попытался удаленно отладить его с помощью Visual Studio. Я вижу, что исключения возникают при доступе к сайту, но я не могу понять, в чем проблема. Одним из первых исключений выброшенных является:
Exception thrown: 'System.InvalidOperationException' in AspNet.Loader.dll
Когда я посмотрел в журналах, он дал мне Couldn't determine an appropriate version of runtime to run.
Ли ClassLibrary1 также нацелен на .NET Core? например У ClassLibrary1 также есть «project.json»? – natemcmaster
Что произойдет, если вы удалите таргетинг dnxcore? – mbudnik
@natemcmaster Это не так, только для .NET Framework 4.5.1. Я обновил сообщение со структурой ClassLibrary1, у него нет '' 'project.json'''. @mbudnik Аналогичная ошибка возникает. –