Chr*_* KL 10 .net compact-framework
如何编写可以为常规.NET 3.5 Framework或.NET 3.5 Compact Framework重新编译的.NET类库?
Mat*_*ton 14
遗憾的是,这两个框架不是二进制兼容*,但不要让它阻止你.
在您的解决方案中创建两个项目(一个普通的类库项目和一个Compact Framework类库项目),并通过单击"添加|现有文件"然后选中"添加为"将所有文件从一个项目添加到另一个项目作为链接链接"文件对话框上的复选框.
现在您只需要维护一组源代码,但您的解决方案将同时构建两个DLL.
如果您在特定于桌面框架的文件中包含任何代码并且无法在紧凑框架上运行,则可以将其包装在编译器指令中(至少在C#中),如下所示:
#if PocketPC
// mobile-specific stuff here
#else
// desktop-specific stuff here
#endif
Run Code Online (Sandbox Code Playgroud)
说真的,我不知道为什么最好的答案是如此顶级.您根本不需要两个单独的项目.此外,我不喜欢预处理器指令,它们很难看,并且在使用构建参数时需要有关项目的其他知识.将所有不兼容的零碎件外包给接口(IPlaformServices等)更加美观,或者您甚至可以问:
if(Environment.OSVersion.Platform == PlatformID.WinCE)
{
// winCE specific
}
else
{
// desktop specific
}
Run Code Online (Sandbox Code Playgroud)
这两个都是比预处理器指令IMO更好的解决方案.