आप एक 'ट्रायल' संस्करण का उपयोग कर के बिना एक ही परियोजना में अपने एप्लिकेशन का एक निःशुल्क और सशुल्क संस्करण है चाहते हैं, यह है कि कैसे मैं यह कर:
प्रत्येक परियोजना एक भी ProductID जो अलग असाइन किया गया है इंस्टॉल समय पर अन्य ऐप्स से ऐप। आप पहली परियोजना में सभी फाइलों के लिए एक दूसरी परियोजना और लिंक बना सकते हैं, लेकिन प्रोजेक्ट बढ़ने के साथ ही रखरखाव की आवश्यकता होगी। मेरा समाधान बिल्ड कॉन्फ़िगरेशन का उपयोग करने के लिए मुफ्त या सशुल्क ऐप का चयन करने की अनुमति देता है।
सबसे पहले आपको ऐप के प्रत्येक संस्करण के लिए एक अलग उत्पाद आईडी की आवश्यकता है। यह ProductID को प्रकट फ़ाइल 'Properties/WMAAppManifest.xml' में घोषित किया गया है। तो पहला कदम WMAAppManifest.xml के दो संस्करणों को बनाना है। मैं उन्हें WMAAppManifestPaid.xml और WMAAppManifestFree.xml कहता हूं।
इनमें से प्रत्येक मेनिफेस्ट फाइलों में, उत्पाद आईडी के लिए एक अलग GUID प्रदान करें और मुक्त संस्करण का शीर्षक भी बदलें ताकि आप इंस्टॉल होने पर उन्हें अलग कर सकें।
अगला हमें परियोजना में दो नए बिल्ड कॉन्फ़िगरेशन जोड़ने की आवश्यकता है। मैं उन्हें रिलीज फ्री और डीबग फ्री कहता हूं।
इसके बाद आप जोड़ने के कुछ पूर्व बिल्ड सभी निर्माण configuations के घटनाक्रम उचित प्रकट फाइल कॉपी करने के लिए:
$ (ConfigurationName) यदि == रिलीज प्रति $ (ProjectDir) \ गुण \ WMAppManifestPaid.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml यदि $ (कॉन्फ़िगरेशन नाम) == डीबग कॉपी $ (ProjectDir) \ Properties \ WMAppManifestPaid.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml अगर $ (कॉन्फ़िगरेशन नाम) == रिलीज़ फ्री कॉपी $ (ProjectDir) \ Properties \ WMAppManifestFree.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml यदि $ (कॉन्फ़िगरेशन नाम) == डीबग फ्री कॉपी $ (ProjectDir) \ Properties \ WMAppManifestFree.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml
अब आप बिल्ड कॉन्फ़िगरेशन को बदलकर या तो ऐप के निःशुल्क या भुगतान किए गए संस्करणों को बनाने में सक्षम होना चाहिए।
अगला, वास्तव में भुगतान संस्करण की तुलना में मुक्त संस्करण को अलग करने की अनुमति देने के लिए, जैसे सीमित सीमाएं, विभिन्न पृष्ठों आदि दिखाते हुए, आपको एक सशर्त संकलन प्रतीक, जैसे कि दो मुक्त बिल्ड कॉन्फ़िगरेशन में FREE_VERSION जोड़ने की आवश्यकता है।
तो आप बस जैसे कोड बदलने के लिए संकलक निर्देशों का उपयोग कर सकते हैं:
#if FREE_VERSION
s = "My App Free";
#else
s = "My App Paid";
#endif
Fwiw, संकलक निर्देशों के लिए सबसे आसान हो जाएगा। आप बस परियोजना सेटिंग्स (मुक्त संस्करण के) में एक ISFREEVERSION निर्देश परिभाषित करते हैं, और उसके बाद बस #sese ISFREEVERSION जोड़ें ... #else ... #endif (यह बहुत अच्छा काम करता है!) – DevTheo
धन्यवाद मैट! यह दृष्टिकोण मुझे परियोजना के लिए एक अद्वितीय GUID, ऐप के लिए नया आइकन और मेरे कोड को डुप्लिकेट करने की अनुमति नहीं देता है! –
@DevTheo thata केवल एक बिंदु तक अच्छा है। यह आपकी परियोजना प्रोजेक्ट्स, इमेज इत्यादि की मदद नहीं करता है। –