के लिए वर्तमान बिल्ड नंबर को कैसे पास करें हमारे पास एक Outlook एड-इन है जो क्लिकऑन परिनियोजन का उपयोग कर रहा है।MSBuild के साथ क्लिकऑन परिनियोजन -> एप्लिकेशन संस्करण/या autoincrement
डेवलपर बिल्ड में चेक करने के बाद, पीसी एक बिल्ड कतार देता है और एप्लिकेशन साझा ड्राइव पर किसी स्थान पर प्रकाशित होता है।
समस्या यह है कि बिल्ड प्रकाशित संस्करण को वर्तमान असेंबली संस्करण में नहीं बदलता है और इसलिए यह पिछले संस्करण के फ़ोल्डर में प्रकाशित होता है जिसके परिणामस्वरूप एक दूषित इंस्टॉलर कहता है कि संस्करण स्थापित नहीं किया जा सकता है।
मैंने that article पढ़ा है। और मैंने स्थापित किया [असेंबली: असेंबली वर्जन ("1.0। *")]। अब तक कुछ भी नहीं।
मैंने * .csproj फ़ाइल में <ApplicationVersion></ApplicationVersion>
को बढ़ाकर इस समस्या के आसपास काम करने का एक तरीका निकाला। लेकिन मैं इसे स्वचालित होना चाहता हूं।
/target:publish /property:PublishDir="\\sharedDir\\" /property:GenerateManifests=true
/property:ApplicationVersion=1.0.0.123
और फिर भी यह स्वचालित नहीं है:
अन्य वैकल्पिक हल जब MSBuild.exe को क्रियान्वित किया गया था। मैं वास्तव में msbuild.exe पर मौजूदा बिल्ड नंबर को पास करना चाहता हूं या प्रत्येक बिल्ड पर वास्तविक बिल्ड नंबर के साथ <ApplicationVersion></ApplicationVersion>
में मान को प्रतिस्थापित करना चाहता हूं। क्या कोई और तरीका है?
आप किस बिल्ड सर्वर का उपयोग कर रहे हैं? क्रूज नियंत्रण? जेनकींस/हडसन? TFS? –
बिल्ड सर्वर टीएफएस है। –
मेरे अपने प्रयोग के आधार पर मेरा मानना है कि * .csproj फ़ाइल में मान में वृद्धि करना एक क्लिकऑन एप्लिकेशन को पूरी तरह से स्वचालित बनाने के लिए सही और आसान तरीका है। ऐसा करने से प्रकट होता है कि हवाएं सही हो रही हैं। यदि आप बस एक /t:AplicationVersion=a.b.c.d पास करते हैं तो यह एप्लिकेशन मैनिफेस्ट को सही ढंग से पुन: बना नहीं देता है। बस एक स्ट्रिंग के माध्यम से * .csproj फ़ाइल में उस मान की वृद्धि को स्वचालित करें और उसके बाद MSBuild को/t: ApplicationVersion मान के बिना चलाएं और सब कुछ ठीक होना चाहिए। मैं यह करता हूं और ऑटो अपडेट बहुत अच्छा काम करता है। –