Ответ 1
Сначала рассмотрим первую часть вашего вопроса:
Являются ли библиотеки классов Windows 10 Universal пригодными для использования с такого рабочего стола приложения?
Чтобы ответить на это, я создал новое решение в VS2015 со следующими проектами:
- Настольное приложение WPF с именем wpfApp
- Приложение UWP Win10 с именем win10App
- Библиотека классов UWP Win10 с именем win10Lib
Затем я смог добавить библиотеку классов в качестве ссылки на приложение UWP. Но у меня появилось сообщение об ошибке при попытке добавить ссылку на библиотеку к настольному приложению.
(SCREENSHOT: Err msg при попытке добавить UWP lib как ссылку на настольное приложение)
Далее, вторая часть вашего вопроса:
и если нет, то какой рекомендуемый способ совместного использования кода в этом сценарий?
Итак, я добавил новый проект библиотеки классов, но не Universal... Я выбрал параметр Portable Class Library в классических настольных приложениях. Это позволило мне выбрать платформу, которую я хочу поддерживать, включая .NET 4.6 и Windows Universal 10.0.
(SCREENSHOT: Добавить портативную библиотеку классов)
Итак, теперь у меня есть новый проект библиотеки классов в моем решении:
- классическая настольная библиотека классов (переносная) с именем portableLib
Я снова начал добавлять ссылку на библиотеку классов для своего рабочего стола WPF, выбрав мой новый проект portableLib. Однако я получил следующее сообщение об ошибке:
(SCREENSHOT: сообщение об ошибке при добавлении переносимой библиотеки классов в проект WPF)
Это произошло потому, что я выбрал 4.6 (по умолчанию для версии .NET Framework) как одну из платформ при создании библиотеки классов, но мой проект WPF по-прежнему нацелился на более раннюю версию .NET Framework. Я исправил это, отредактировав свойства проекта приложения WPF и обновил цель в соответствии с версией среды библиотеки классов.
Наконец, я добавил ссылку на новую переносимую библиотеку классов на мое приложение UWP для Win10, и оно было успешно добавлено. Теперь я могу построить решение без ошибок.
Вот скриншот моей структуры проекта со ссылками.
Надеюсь, это поможет!