2016-05-25 9 views
0

Я с трудом преобразование моего asp.net (ядро) приложения из dnx46 к .netcoreapp1.0 из двух конкретных зависимостей (Microsoft.Azure.ServiceBus и System.IO.Ports.SerialPort)проблем зависимостей мигрирующих проект от ASP.NET 5 RC1 для ASP.NET Ядра 1,0

Будучи положительным, я делаю ставку, что это функция будет в конце концов высадиться на .net сердцевине один день .. но в то же время , Я обнаружил, что конвертирование моего приложения из прозвища dnx46 - .netstandard1.3 позволяет мне разрешить зависимость ServiceBus.

Решение System.IO.Ports.SerialPort однако все еще проблема, и я не понимаю, как это сделать. Я надеялся, что импорт net462 рамки в .netstandard1.3 moniker, позволит найти объект System.IO.Ports.SerialPort, но это не так.

Что мне не хватает?

Для справки, есть мой project.json:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0-rc2-3002702", 
     "type": "platform" 
    }, 
    "Microsoft.NETCore.Platforms": "1.0.1-*", 
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final", 
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0-rc2-final", 
    [...more stuff...] 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
     // To be restored when they'll become available on .net core 
     // "Microsoft.WindowsAzure.ConfigurationManager": "3.2.1", 
     // "WindowsAzure.ServiceBus": "3.2.1", 
     } 
    }, 
    "netstandard1.3": { 
     "buildOptions": { 
     "define": [ "INCLUDE_WINDOWSAZURE_FEATURE" ] 
     }, 
     // Imports of net462 fixes loading of 
     // - NewtonSoft.Json 
     // - System.Runtime.Loader for "Microsoft.NETCore.App" 
     "imports": [ 
     "net462" 
     ], 
     "dependencies": { 
     "Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027" 
     "Microsoft.WindowsAzure.ConfigurationManager": "3.2.1", 
     "WindowsAzure.ServiceBus": "3.2.1", 
     } 
    } 
    } 
} 

ответ

2

Разрешающая System.IO.Ports.SerialPort однако по-прежнему является проблемой, и я не понимаю, как сделать эту работу. Я надеялся, что импорт платформы net462 в .netstandard1.3 moniker позволит найти объект System.IO.Ports.SerialPort, но это не так.

Вы не можете ссылаться на System.IO.Ports.SerialPort при настройке .NET Core или .NET Standard, поскольку этот контракт существует только в полной платформе .NET Desktop.

Эта библиотека может быть в конечном итоге ported, но в то же время вам придется использовать .NET Desktop (например, net462) вместо .NET Core.

Удалить netcoreapp1.0 и netstandard1.3 и добавить net462, и он должен работать.

+0

Я на самом деле не понимаю, что я мог бы сделать наоборот: иметь 'net462' рамочного раздел и сделать импорт на' netcoreapp1.0 'чтобы получить все функции' AspNetCore' и 'EntityFrameworkCore'. – DarkUrse

+0

Вам не нужно импортировать 'netcoreapp1.0' для' net462', потому что оба ядра ASP.NET Core и EF Core совместимы с .NET Desktop (импорт 'netcoreapp1.0' для' net462' не имеет большого смысла, в любом случае) – Pinpoint

+0

Gotcha, вы правы. Повторное переименование и повторная версия штурма получили лучшее из меня, я боюсь:/Я был убежден, что EF * Core * и asp.net * core * оба требуют .net * core * для бежать, что не так. Так запутаться сначала.Если я могу спросить, какова цель и когда пришло время использовать раздел импорта? – DarkUrse

2

Если вы планируете развертывание в окне окна и таргетинге net452, тогда просто возьмите на себя зависимость от net452. Я собрал migration guide, чтобы поделиться своими обновлениями, возможно, это может помочь? Сначала у меня было это недоразумение, что я бы взял зависимость от netstandard1.*, а затем "import": "net4*", Дэвид Фаулер рассмеялся надо мной и сказал что-то в меру «чувак, который делает не так!». : P

Вы должны изменить свой project.json frameworks выглядеть следующим образом:

"frameworks": { 
    "net462": { } 
    } 
+0

В идеале я хотел бы иметь возможность развертывания приложения на любом ящике, поддерживаемом ядром .net (так что не специально для Windows). Ориентация net46 * выглядит как резервный план после рекламы на основных преимуществах .net, которые я сказал клиенту. Я последовал за Pinpoint, и ваше предложение импортировало 'netcoreapp1.0' в' net462', и теперь приложение компилируется. Поскольку у вас была беседа с Дэвидом Фаулером по этой концепции «импорт/зависимость», есть ли у вас более четкое представление о том, что делает импорт? (говоря об этом import -> 'framework: {import: []}') – DarkUrse

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

  • Нет связанных вопросов^_^