Ответ 1
Эти два фреймворка не являются бинарными *, к сожалению, но не позволяйте этому останавливать вас.
Создайте два проекта в своем решении (один стандартный проект библиотеки классов и один проект библиотеки классов Compact Framework) и добавьте все файлы из одного проекта в другой в качестве ссылок, нажав "Добавить существующий файл", а затем проверив "Добавить как ссылку" в диалоговом окне файла.
Теперь у вас есть только один набор исходных кодов для поддержки, но ваше решение будет одновременно создавать обе библиотеки.
Если у вас есть какой-либо код внутри файла, специфичный для рамок рабочего стола, и он не будет работать на компактной основе, вы можете обернуть его в директиву компилятора (по крайней мере, на С#), например:
#if PocketPC
// mobile-specific stuff here
#else
// desktop-specific stuff here
#endif
- Обратите внимание, что, хотя вы не можете использовать двоичные файлы для настольных систем на мобильной платформе, противоположное утверждение неверно. Компактные исполняемые файлы могут работать на рабочем столе. Однако я вполне уверен, что настольное приложение не может ссылаться на компактную сборку фреймов (хотя я никогда не пробовал).