如何组织Windows Phone代码库以同时针对7.x和8平台

我接手了以前针对WP 7.1平台的Windows Phone项目,随着最近宣布的新平台,它也应该针对WP 8。

我的VS 2010解决方案包含几个项目(数据访问,模型,测试和WP7客户端应用程序),我正在徘徊在如何包含对WP8的支持。

我必须注意,由于使用了Toolkit控件和专门针对WP7.1的其他第三方库,代码库与WP8不兼容。

Visual Studio版本还有另一个问题 – WP7.1可以与VS 2010一起使用,但WP8需要VS 2012. 我应该将整个代码库移动到VS 2012吗?

关于如何以最有意义的方式组织代码库以避免重复和可能的痛苦维护的任何好建议?

我在考虑一个解决方案 – 多个项目多个解决方案 – 可重用项目方法。 代码重复(如两个单独的文件夹/解决方案)应该是最不可能的方法(回退)。

最好的办法是将所有项目升级到VS2012,以便能够支持两个WP版本(尽管它是VS2012解决方案,你仍然可以在VS2010中打开WP7项目,因为它是落后的兼容)。

关于组织代码库的最佳方法,在我看来你应该创建一个支持WP7和WP8的可移植库,并获得所有公共代码库(可能主要是业务逻辑,特别好,如果你使用的模式如此作为MVVM)。 不要忘记控件问题,你应该对WP8有一些不同的控件,因为屏幕尺寸不一样,你可以获得更多信息并使用不同的控件。 如果您仍想使用相同的XAML代码,请在其中一个项目中只有一个文件,并在要重新使用它的另一个项目中添加相同的文件“As Link”。

最后,您可以,也可能应该使用#if指令来使用某些条件代码编译。

希望这些信息有所帮助,如果需要任何代码示例,只需这样说,我会尝试收集一些东西。