我们的团队正在开发一个框架。在另一个解决方案中,我们有一个移动项目(以及其他“普通”.NET项目)。该移动项目将受益于使用框架中的一些代码。但是,框架是完整的.NET版本,而不是紧凑的框架。移动项目应该如何使用该框架代码?现在,我们的团队已经通过链接文件将框架中的许多文件添加到移动项目中。我们可以这样做,但我想知道是否有更好的方法。使用这种方法,我们必须在构建机器上采取一些额外的步骤,以确保在我们使用移动应用程序构建解决方案时,这些链接文件可用。
另一种选择是维护两个版本的框架类;一个是完整的.net版本,另一个是紧凑框架版本。但保持重复的代码永远不会好。
答案 0 :(得分:0)
维护两个版本的课程将成为管理的噩梦。您可以从.NET CF项目中引用完整的.NET版本程序集,但无法保证所有必需的方法和安全性。程序集将在移动设备上提供。
您应该创建一个针对.NET CF框架的公共项目,并将项目/产品所需的所有类放在那里,然后在您的移动项目和您使用完整版本的其他项目中引用此公共项目.NET框架。
答案 1 :(得分:0)
我们正在进行.NET Full和CF开发。我们或多或少地做了你正在做的事情,只需稍微调整一下。通常,项目需要两个解决方案:一个用于桌面应用程序(Full .NET),另一个用于移动应用程序(CF .NET)。
有时我们需要在两个应用程序之间共享代码。我们为该代码创建一个单独的类库,以及以“Compact”结尾并包含完整.NET类库中的“链接”文件的第二个类库。例如:
My.Desktop
My.Mobile
My.Common
My.Common.Compact
My.Common.dll由My.Desktop引用,My.Common.Compact.dll由My.Mobile引用。
还有一个提示。有时,My.Common中的代码与My.Common.Compact中的代码完全不同,因为CF缺少Full .NET中存在的大量代码。为了解决这个问题,我们使用#if语句和FULL_FRAMEWORK指令,该指令仅在My.Common中定义,我们确保未在My.Common.Compact中定义。
答案 2 :(得分:0)
实际上有人给我发了一个关于这个主题的MSDN链接。底线是两个项目(完整框架和CF)共享相同的文件夹,然后共享相同的文件(但每个项目可以选择和选择他们想要的文件)。