![](/img/trans.png)
[英]How to reference compact framework 3.9 class library in the full framework 3.5 class library
[英]How to write a class library that will work on .NET 3.5 compact framework AND regular framework?
如何编写可以为常规.NET 3.5 Framework或.NET 3.5 Compact Framework重新编译的.NET类库?
遗憾的是,这两个框架不是二进制兼容*,但不要让它阻止你。
在您的解决方案中创建两个项目(一个普通的类库项目和一个Compact Framework类库项目),并通过单击“添加|现有文件”然后选中“添加为”,将所有文件从一个项目添加到另一个项目作为链接链接“文件对话框上的复选框。
现在您只需要维护一组源代码,但您的解决方案将同时构建两个DLL。
如果您在特定于桌面框架的文件中包含任何代码并且无法在紧凑框架上运行,则可以将其包装在编译器指令中(至少在C#中),如下所示:
#if PocketPC
// mobile-specific stuff here
#else
// desktop-specific stuff here
#endif
>这两个框架不是二进制兼容的>
实际上,桌面版可以加载和运行CF程序集。
说真的,我不知道为什么最佳答案是如此顶级。 您根本不需要两个单独的项目。 此外,我不喜欢预处理器指令,它们很难看,并且在使用构建参数时需要有关项目的其他知识。 将所有不兼容的零碎件外包给接口(IPlaformServices等)更加美观,或者您甚至可以问:
if(Environment.OSVersion.Platform == PlatformID.WinCE)
{
// winCE specific
}
else
{
// desktop specific
}
这两个都是比预处理器指令IMO更好的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.