Ответ 1
Обновление
В https://github.com/aspnet/Announcements/issues/98 именование немного изменилось.
Для приложений RC1 и тестовых проектов все равно должны быть нацелены на dnx4x и dnxcore50 и вообще не нужно менять. Все, что имеет Program.Main или Startup.cs считается приложением.
Только библиотеки классов должны быть изменены на целевые net4x и dotnet5.x. Для рекомендуемые шаги преобразования:
В project.json:
Измените dnx4x на net4x (например, dnx451 на net451)
Измените dnxcore50 на dotnet5.4
И в ваших файлах CS:
Измените #if DNX451 на #if NET451
Измените #if DNXCORE50 на #if DOTNET5_4
Если у вас есть проект, нацеленный на несколько фреймворков, и вы хотите добавить общую ссылку на библиотеку, библиотека должна поддерживать все эти фреймворки. Если вы укажете, что определенная структура сама ссылается на эту библиотеку, тогда эта библиотека должна поддерживать только выбранную структуру.
Пример, если я хочу ссылаться на library1 для всех своих фреймворков:
"dependencies": {
"library1": "1.0.0"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
}
Затем библиотека1 должна поддерживать dnx451 и dnxcore50
Если я хочу ссылаться на библиотеку1, но она поддерживает только dnx451, то это мой единственный вариант:
"dependencies": {
},
"frameworks": {
"dnx451": {
"dependencies": {
"library1": "1.0.0"
}
},
"dnxcore50": { }
}
Но это означало бы, что код библиотеки1 не может использоваться в dnx451.
Чтобы обойти это, вы можете использовать, используя временные условия компиляции:
#if DNX451
//Code here for dnx451
#elif DNXCORE50
//code here for dnxcore50
#endif
Или другая работа использует другую библиотеку для другой зависимости
И только для уточнения, библиотека может поддерживать больше фреймворков, чем ваш проект. Таким образом, библиотека1 может поддерживать dnx451 и dnxcore50, в то время как ваш проект поддерживает только dnx451, и будет хорошо