Windows phone 7 如何维护windows phone的两个sdk版本的代码

Windows phone 7 如何维护windows phone的两个sdk版本的代码,windows-phone-7,windows-phone-7.1,Windows Phone 7,Windows Phone 7.1,我正在为windows phone sdk 7.0和7.1构建一个应用程序,我想为7.1提供一些额外的功能,但我只想为这两个版本维护一个代码库,并且只有当用户的手机是7.1时才会显示一些代码 我读到了肖恩·维尔德茅斯的帖子:。但我不知道该怎么做“首先,我接受了我原来的项目,创建了两个解决方案文件夹,并创建了7.1项目,如图所示”这篇文章中提到的 有人能帮忙吗?或者提出其他想法 谢谢。完美的解决方案是预处理器指令[2011年11月5日更新:删除了关于市场的过时信息。感谢您提供的udpated in

我正在为windows phone sdk 7.0和7.1构建一个应用程序,我想为7.1提供一些额外的功能,但我只想为这两个版本维护一个代码库,并且只有当用户的手机是7.1时才会显示一些代码

我读到了肖恩·维尔德茅斯的帖子:。但我不知道该怎么做“首先,我接受了我原来的项目,创建了两个解决方案文件夹,并创建了7.1项目,如图所示”这篇文章中提到的

有人能帮忙吗?或者提出其他想法


谢谢。

完美的解决方案是预处理器指令

[2011年11月5日更新:删除了关于市场的过时信息。感谢您提供的udpated info@johnforrest]

要执行Shawn所描述的操作,请将现有解决方案与现有的7.0项目结合起来。添加解决方案文件夹并将其命名为“7.0”。将现有的7.0项目移动到该解决方案文件夹中。创建另一个名为“7.1”的解决方案文件夹。对于7.0解决方案文件夹中的每个项目,在7.1解决方案文件夹中创建一个新的匹配项目。这些是肖恩的PhonyTools.7.1等等。现在,按照他的指示,使用链接自7.0项目的链接文件填充7.1项目

我发现链接文件是一种祝福,也是一种诅咒。如果在一个项目中打开链接文件并对其进行编辑,Visual Studio并不总是知道需要重建包含链接文件的另一个项目。最近,我发现如果我记得在另一个项目中打开链接文件,我会收到一条警告,说明该文件已在另一个项目中打开,但是VS会识别该文件已更改,并将重建另一个项目

正如@KevinDTimm所建议的,预处理器指令并不能完全解决问题,因为对于两种不同类型的项目(7.0和7.1应用程序或库),您仍然需要两个不同的项目。此外,应用程序的不同版本将引用程序集的不同对应版本


最后,当我们讨论条件编译时,不要忘记属性,它通常是比使用预处理器指令更好的解决方案。比尔·瓦格纳(Bill Wagner)在《有效C#》第二版第4项第页中很好地描述了[条件]属性的优点。20享受吧

这不再是事实。MS增加了对同一应用程序单独提交7.0和7.1版本的支持。这篇博客文章概述了细节:感谢@johnforrest的更新。我错过了那个公告,但这是个好消息!我已经相应地更新了我的答案。谢谢各位@VisualStuart,我使用的是visual studio express,它没有解决方案文件夹功能。但我使用了两种解决方案,一种是7.0项目,另一种是7.1项目。它起作用了。