【发布时间】:2011-06-20 03:54:17
【问题描述】:
我在 Mercurial rep 中有一个 c# 库(在 VS2010 中开发),目前针对 netFX-3.5。我想在我的库中使用 netFX-4.0 中的一些功能,但由于有很多项目仅限于 2.0 CLR,我还想保留和维护 netFX-3.5 版本。自然会有一些代码(甚至可能是大部分代码)在两个版本中都是相同的。现在我很困惑,这是保持这一点的最佳(或至少是好的)方法。
我应该在 VS 中创建一个单独的项目吗?或者也许创建存储库的克隆?是否有一些行之有效的策略?
更新: 我发现了 VS Add as Link 功能,它允许在项目之间共享文件,这对于在同一个解决方案中将两个目标作为两个项目实现是一个巨大的优势。我很确定我会采用这个解决方案,但如果有更多建议,那就太好了!
更新 2:
正如我之前所说,使用 Add as link 功能来实现如下所示的预期结果:为旧 (3.5) 框架创建一个新项目。将所有文件添加为顶级版本项目的链接。在 v4.0 项目中,通过 partial class 规范(如 ClassName.Net40.cs)将 netFX-4.0 功能添加到类中。适合我。
【问题讨论】:
-
为什么不能只在类库中拥有通用代码?
-
我认为这是不可能的。我需要访问在类库中无法访问的私有字段和方法。无论如何,这对我来说似乎是一种尴尬的解决方案。
-
您需要访问私有字段是什么意思?您不能从不同的目标框架访问私有字段,因为您只能访问一个类中的私有字段
-
没错。现在,我实际上如何才能使用您的方法(在类库中有公共代码)隔离,例如,在 netFX-3.5 和 netFX-4.0 版本中会有所不同的类的某些方法?
-
你会使用部分类
标签: .net visual-studio mercurial project-management project-organization