OpenNETCF широко использует P / Invoke.
По сути, это оболочка для некоторых основных функций ОС в Windows CE и ее производных, которые иначе не реализованы в Compact Framework. На практике это означает обширный P / Invoking для coredll.dll; базовый модуль ОС для Windows CE.
Windows Embedded Standard - это Windows XP. По этой причине я не ожидаю, что вы сможете использовать OpenNETCF.
В зависимости от используемой версии вы можете получить код OpenNETCF здесь (или купить последнюю версию, конечно) и посмотреть, что происходит под капотом. Кроме того, вы можете обнаружить, что вызовы, которые вы делаете для OpenNETCF, фактически выполняются в любом случае при компиляции для Windows Embedded Standard.
Одним из способов решения этой проблемы является создание другого проекта для этой платформы, содержащего точно такие же файлы кода, но без ссылки на OpenNETCF, а затем устранение ошибок компиляции.
Вы можете добавить Условный символ компиляции либо в проект CE, либо в проект Windows Embedded, затем исправить ошибки следующим образом (этот пример не для OpenNETCF, но вы поняли идею):
public static string ExecutingAssembly
{
get
{
#if WindowsCE
return Assembly.GetExecutingAssembly().GetName().CodeBase;
#else
return Assembly.GetExecutingAssembly().Location;
#endif
}
}
Очевидно, что тогда вам придется создавать сборку для каждой платформы, поскольку выводимые сборки теперь будут другими.