Как написать библиотеку классов .NET, которую я могу перекомпилировать как для обычной .NET 3.5 Framework, так и для .NET 3.5 Compact Framework?
Как написать библиотеку классов, которая будет работать с .NET 3.5 compact framework и регулярной структурой?
Ответ 1
Эти два фреймворка не являются бинарными *, к сожалению, но не позволяйте этому останавливать вас.
Создайте два проекта в своем решении (один стандартный проект библиотеки классов и один проект библиотеки классов Compact Framework) и добавьте все файлы из одного проекта в другой в качестве ссылок, нажав "Добавить существующий файл", а затем проверив "Добавить как ссылку" в диалоговом окне файла.
Теперь у вас есть только один набор исходных кодов для поддержки, но ваше решение будет одновременно создавать обе библиотеки.
Если у вас есть какой-либо код внутри файла, специфичный для рамок рабочего стола, и он не будет работать на компактной основе, вы можете обернуть его в директиву компилятора (по крайней мере, на С#), например:
#if PocketPC
// mobile-specific stuff here
#else
// desktop-specific stuff here
#endif
- Обратите внимание, что, хотя вы не можете использовать двоичные файлы для настольных систем на мобильной платформе, противоположное утверждение неверно. Компактные исполняемые файлы могут работать на рабочем столе. Однако я вполне уверен, что настольное приложение не может ссылаться на компактную сборку фреймов (хотя я никогда не пробовал).
Ответ 2
<Р → Эти две структуры не совместимы с бинарными >
На самом деле версия Desktop может загружать и запускать сборки CF.
Ответ 3
- Создайте библиотеку классов для компактный каркас.
- Добавить ссылку в эту библиотеку из вашего .exe проект (рабочий стол или мобильный)
- Profit!
if(Environment.OSVersion.Platform == PlatformID.WinCE)
{
// winCE specific
}
else
{
// desktop specific
}
Оба из них - лучшие решения, чем препроцессорные директивы IMO.