2015-08-11 2 views
5

Первоначально у меня был рабочий проект ASP.NET 5, который можно было опубликовать в Azure без проблем. Затем я решил разделить DAL на отдельный проект класса, но столкнулся со многими проблемами зависимости. Затем я решил создать пустой проект с пустой библиотекой классов, чтобы узнать, могу ли я решить, в чем проблема, но я даже не могу опубликовать это.Не удается опубликовать ASP.NET 5, который ссылается на библиотеку классов на Azure

Шаги:

  1. Создать новый ASP.NET 5 Web API проекта Preview Template (также создает решение).
  2. Добавить библиотеку классов в решение.
  3. Изменить целевую структуру библиотеки классов на .NET 4.5.1 из 4.6
  4. Библиотека классов классов из проекта ASP.NET 5.
  5. Попытка опубликовать.

Это структура проекта:

enter image description here

В результате 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.

+0

Ли ClassLibrary1 также нацелен на .NET Core? например У ClassLibrary1 также есть «project.json»? – natemcmaster

+0

Что произойдет, если вы удалите таргетинг dnxcore? – mbudnik

+0

@natemcmaster Это не так, только для .NET Framework 4.5.1. Я обновил сообщение со структурой ClassLibrary1, у него нет '' 'project.json'''. @mbudnik Аналогичная ошибка возникает. –

ответ

1

Оказывается, что я использовал неправильный проект библиотеки классов. Я, по-видимому, использовал старую библиотеку классов, а не новую версию PREVIEW, которая также помечена (Package).

Class Library Project

Описание бросил меня немного, как он сказал, что было использовано для создания пакетов NuGet, но теперь все работает отлично, и проект ASP.NET 5 может быть развернут на Azure с успешной ссылкой на библиотеки классов ,

+0

Я видел ту же самую проблему с более обширной библиотекой классов, которая требует некоторых ссылок (2 библиотеки DLL), но диспетчер ссылок нового типа библиотеки классов не открывает диалоговое окно файла, когда я нажимаю «Обзор», , Не могли бы вы увидеть, работает ли эта кнопка для вас? –

+0

@ Gabriël Диалог файлов открывается для этой библиотеки классов для меня. –

Смежные вопросы