मैं आपके साथ ईमानदार रहूंगा, पॉल। मैं क्लिकऑन के साथ वास्तव में रोमांचित नहीं हुआ हूं। टूलसेट मैन्युअल प्रकाशन/तैनाती पक्ष के अलावा वास्तव में परिपक्व नहीं लग रहा है। एमएसबिल्ड के माध्यम से सामान चलाना कभी अच्छा अनुभव नहीं रहा है और Mage.exe हमेशा मेरे लिए समस्याएं प्रतीत होता है। अधिकांश समय, मेरी समस्याएं संस्करण संख्या के चारों ओर घूमती हैं जो सही ढंग से सेट नहीं की जा रही हैं।
उसने कहा, मुझे लगता है कि हमारी सबसे बड़ी समस्या विजुअल स्टूडियो में सेटिंग यूआई के माध्यम से चीजों को प्रबंधित करने की कोशिश करने से आई है। एमएसबिल्ड "जादू" पर थोड़ा सा भरोसा करने और एमएसबिल्ड में आवश्यक पैरामीटर को पार करने और सीस्पोज़ फ़ाइल के अंदर थोड़ा अधिक नियंत्रण लेने के लिए मेरे लिए मददगार रहा है।
मुझे नहीं पता कि आपका निर्माण सेटअप कैसा दिखता है, लेकिन हमारे लिए, हमारे पास JenkinsRake फ़ाइल चलाता है जो समाधान पर MSBuild को आमंत्रित करता है। यह हमें रेस फ़ाइल से एमएसबिल्ड में विशिष्ट पैरामीटर भेजने की अनुमति देता है।
विशेष रूप से, हम ApplicationVersion
, ApplicationRevision
, MinimumRequiredVersion
, और OutDir
के मानों में धक्का देते हैं। जहां तक चीजें सीस्पोज़ में स्वयं को देखने के लिए, आप यह सुनिश्चित करना चाहते हैं कि ManifestCertificateThumbprint
, ManifestKeyFile
, GenerateManifests
और SignManifests
सेट हैं। हमने डिफॉल्ट बिल्ड लक्ष्य को Publish
पर भी सेट किया है, लेकिन मुझे यकीन नहीं है कि यह सब प्रासंगिक है।
मैं बात नहीं कर सकता कि ClickOnce आपके निष्पादन योग्य को "डी-हस्ताक्षर" क्यों कर सकता है, शायद आप जिस निष्पादन योग्य पर हस्ताक्षर कर रहे हैं, वह हो सकता है कि आप क्लिकऑन पैकेज में पैक नहीं हो रहे हैं। दूसरे शब्दों में, यह एक नया निष्पादन योग्य बना सकता है और उस पैकेज के बजाय उस पैकेज में फेंक रहा है जिसे आपने पहले ही हस्ताक्षर कर लिया है। मुझे लगता है कि निश्चित रूप से कॉल करने के लिए मुझे आपके सेटअप के बारे में कुछ और जानना होगा।
इसके लायक होने के लिए, अगर मैं इसे फिर से कर सकता, तो मैं अपने अंडों को क्लिकऑन टोकरी में नहीं डालूंगा। यह इंटरनेट एक्सप्लोरर चलाने वाले लोगों के लिए वास्तव में केवल एक शानदार अनुभव है या यदि आपने क्रोम के लिए प्लगइन स्थापित किया है। यह अधिक काम है, लेकिन मैं वर्तमान में ऐसे समाधान पर काम कर रहा हूं जो क्रोम अपडेट की कहानी की नकल करता है। उनके पास इंटरनेट एक्सप्लोरर उपयोगकर्ताओं के लिए एक क्लिकऑन पैकेज है, लेकिन यह वास्तव में केवल Windows इंस्टालर पैकेज डाउनलोड करने के लिए उपयोग किया जाता है जो Chrome.exe और Update.exe को स्थापित करता है। वे ओमाहा के लिए the technical documentation में अन्य विवरणों में जाते हैं (अन्यथा Google अपडेट के रूप में जाना जाता है)।
बैकअप योजना के रूप में, आप वीएस में एक्सई प्रोजेक्ट "साइनिंग" प्रॉपर्टी टैब और कमांड लाइन से msbuild.exe का उपयोग करके कोडिंगिंग सेट अप करने का प्रयास कर सकते हैं। आदर्श नहीं, मुझे पता है। – anthony
@anthony: हस्ताक्षर संपत्ति टैब मजबूत नामकरण (यानी .NET हस्ताक्षर) के लिए है, Win32 हस्ताक्षर (प्रमाणीकरण नहीं)। विंडोज़ केवल प्रमाणीकरण के बारे में परवाह करता है :( –
आह, हाँ, आप सही हैं। – anthony