2011-11-03 26 views
0

我建立了Windows Phone的SDK 7.0和7.1的應用程序,我想有一些額外的功能爲7.1,但我想保持只由一個代碼庫,並如果用戶的手機是7.1,則只會出現一些代碼。如何保持代碼的Windows Phone兩個SDK版本

我讀到肖恩Wildermuth的帖子:http://wildermuth.com/2011/08/23/Maintaining_a_Project_with_Two_Windows_Phone_Versions。但我不知道該怎麼做「首先,我拿走了我的原始項目並創建了兩個解決方案文件夾,並創建了7.1所示的項目,如下所示」。

有人能幫忙嗎?或建議其他想法?

謝謝。

回答

0

[Updated 11/5/2011:刪除了關於市場的過期信息。感謝您的udpated信息@johnforrest]

做什麼肖恩描述的是採取與現有的7.0項目(一個或多個)現有的解決方案。添加解決方案文件夾並將其命名爲「7.0」。將現有的7.0項目移動到該解決方案文件夾中。製作另一個名爲「7.1」的解決方案文件夾對於7.0解決方案文件夾中的每個項目,請在7.1解決方案文件夾中創建一個新的匹配項目。這些是Shawn的PhonyTools.7.1等等。現在按照他的指導,使用7.0項目鏈接的鏈接文件填充7.1項目。

我發現鏈接的文件是一個祝福和詛咒。如果您在一個項目中打開鏈接文件並對其進行編輯,Visual Studio不會知道包含鏈接文件的其他項目需要重建。最近,我發現,如果我記得打開另一個項目中的鏈接文件,我會得到一個警告,該文件是在另一個項目中打開的,但是VS會識別出該文件已經更改,並將重建另一個項目。

按照@KevinDTimm的建議,預處理指令並不能完全解決問題,因爲對於兩種不同類型的項目(7.0和7.1應用程序或庫),您仍然需要兩個不同的項目。此外,不同版本的應用程序將引用不同的相應版本的程序集。

最後,雖然我們討論了條件編譯的主題,但請不要忘記Conditional屬性,這通常是比使用預處理器指令更好的解決方案。 Bill Wagner對Effective C#中的[Conditional]屬性的優點進行了很好的描述,第2版,第4項, 20.享受!

+0

這不再是事實。 MS增加了對同一應用程序提交單獨7.0和7.1版本的支持。此博客文章概述了詳細信息:http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/09/20/submit-windows-phone-7-5-apps-today-update-7-0-apps -in-october.aspx – johnhforrest

+0

感謝您的更新@johnforrest。我錯過了這個消息,但這是值得歡迎的消息!我相應地更新了我的答案。 –

+0

謝謝你們。 @VisualStuart,我使用的是Visual Studio Express,它沒有解決方案文件夾功能。但我設法使用兩種解決方案來做到這一點,並且在一箇中有7.0個項目,而在另一箇中有7.1個。有用。 – Simon

1

完美的解決方案是預處理指令

相關問題