OpenNETCFはP/Invokeを広範囲に使用します。
これは、Windows CEおよびその派生物の一部のコアOS機能のラッパーであり、CompactFrameworkには実装されていません。実際には、これはcoredll.dllの広範なP/Invokingを意味します。WindowsCEの基本的なOSモジュール。
WindowsEmbeddedStandardはWindowsXPです。このため、OpenNETCFを使用できるとは思いません。
使用しているバージョンによっては、ここでOpenNETCFコードを入手して(またはもちろん最新のものを購入して)、内部で何が起こっているかを確認できる場合があります。また、OpenNETCFに対して行っている呼び出しは、WindowsEmbeddedStandard用にコンパイルするときに実際に実装されていることがわかります。
これに取り組む1つの方法は、まったく同じコードファイルを含み、OpenNETCFへの参照がない、このプラットフォームをターゲットとする別のプロジェクトを作成してから、コンパイルエラーを修正することです。
条件付きコンパイルシンボルをCEプロジェクトまたはWindowsEmbeddedプロジェクトのいずれかに追加して、次のようなエラーを修正できます(この例は、OpenNETCF用ではありませんが、アイデアは得られます)。
public static string ExecutingAssembly
{
get
{
#if WindowsCE
return Assembly.GetExecutingAssembly().GetName().CodeBase;
#else
return Assembly.GetExecutingAssembly().Location;
#endif
}
}
明らかに、出力されるアセンブリが異なるため、プラットフォームごとにビルドを作成する必要があります。