Обычно мы видим следующие цели в project.json
:
"frameworks": {
"net45": {},
"dnx451": {},
"dnxcore50": { }
}
dnxcore50
будет единственной переносимой версией кода проекта, а dnx451
фактически нацелен на .Net 4.5.1 mscorlib и т.д.
Теперь, если я добавлю еще одну цель под названием dnx50
, это создаст допустимый вывод и будет работать нормально.
Разница между dnx451 и dnx50 заключается в том, что она ссылается на разные DLL-сборки DLL
Например mscorlib.dll
:
- dnx451 ссылки
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll
- dnx50 ссылки
C:\Windows\Microsoft.NET\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
, которые по существу являются версией .net 4.6.
Вопрос:
Имеет ли смысл создать эту цель dnx50
для вашей пользовательской библиотеки, например? В основном для целевого .net 4.6 и вам нужны определенные функциональные возможности портативного устройства dnxcore50
?
Или цель dnx451
на самом деле достаточно, и если мне не нужна определенная функция из более поздних версий .net(4.5.2, 4.6), эта цель будет использовать .net 4.6 в любом случае, если она установлена в системе, и я просто нацелен на самую низкую версию, необходимую для моего проекта?
Означает ли это, что наличие обоих объектов, цель dnx451 и dnx50, фактически создало бы тот же результат, правильно?