2010-01-11 20 views
7

हम तैनाती के लिए क्लिकऑन का उपयोग करने के बारे में सोच रहे हैं। मुझे यकीन नहीं है कि क्लिकऑन का उपयोग करते समय इसे आसानी से हासिल किया जा सकता है या नहीं। हम क्लिकऑन इंस्टॉलर बनाते हैं और ग्राहकों को वितरित करते हैं, और प्रत्येक क्लाइंट क्लिकऑन इंस्टॉलर को अपने नेटवर्क पर रखेगा। ग्राहक का प्रत्येक उपयोगकर्ता इसे अपने स्थानीय नेटवर्क से चलाएगा।क्लिकऑन परिनियोजन और स्थापना के बाद कॉन्फ़िगरेशन फ़ाइल को बदलना

एप्लिकेशन में कॉन्फ़िगरेशन फ़ाइल में कुछ सेटिंग्स हैं। प्रत्येक ग्राहक की अपनी सेटिंग होगी (क्लाइंट के तहत सभी उपयोगकर्ता एक ही सेटिंग्स का उपयोग करेंगे)। मेरी समझ एक बार ClickOnce पैकेज बनने के बाद, क्लाइंट कॉन्फ़िगरेशन फ़ाइल को अपनी सेटिंग्स सेट करने के लिए नहीं बदल सकता है, या क्लिकऑन को फिर से हस्ताक्षरित करना होगा।

क्या मेरी समझ सही है? क्या आसपास कोई काम है? क्या एप्लिकेशन ClickOnce मेनिफेस्ट में शामिल फ़ाइलों के लिए अद्यतन स्थान तक पहुंच सकता है?

उत्तर

3

आप 3.5 फ्रेमवर्क आप अपने ClickOnce तैनाती पर हस्ताक्षर करने की जरूरत नहीं है लक्षित कर रहे हैं। सुनिश्चित करें कि "क्लिकऑन मैनिफ़ेस्ट पर हस्ताक्षर करें" आपके प्रोजेक्ट गुणों के "साइन" टैब पर अनचेक किया गया है। तैनाती के बाद यह आपको .plication फ़ाइल को संपादित करने की अनुमति देगा। deploymentProvider टैग की codebase विशेषता बदलें ...
<deploymentProvider codebase="http://theirserver/.../Foo.application" />

यह आवेदन इस मुद्दे की स्थापना हालांकि हल नहीं होगा। यदि आप एक फ़ाइल को संपादित करते हैं जिसे आप तैनात कर रहे हैं, तो फ़ाइल के लिए हैश को पुन: उत्पन्न किया जाना चाहिए।

आप जानते हैं कि ग्राहक की स्थापना की जरूरत है क्या? यदि ऐसा है, तो हो सकता है कि आप प्रत्येक क्लाइंट के लिए अलग-अलग कॉन्फ़िगरेशन फाइलें रख सकें और कॉन्फ़िगरेशन फ़ाइलों को कॉपी करने के लिए प्री-बिल्ड ईवेंट के साथ कुछ करें?

क्या सेटिंग क्लाइंट कॉन्फ़िगरेशन फ़ाइल में है? क्या आप सर्वर पर सेटिंग स्टोर कर सकते हैं और इसे यूआरएल पैरामीटर के माध्यम से पास कर सकते हैं या एप्लिकेशन शुरू होने के बाद इसे वेब सेवा कॉल के साथ प्राप्त कर सकते हैं?

यदि ये चीजें काम नहीं करती हैं, तो आप अपने ग्राहकों को एक साधारण स्क्रिप्ट (शायद Mage का उपयोग करके) प्रदान कर सकते हैं ताकि वे तैनाती को संपादित करने के बाद प्रकट हो सकें और अपने प्रमाण पत्र के साथ इस्तीफा दे सकें।

+0

धन्यवाद। क्या होगा यदि फ़ाइल (जैसे कॉन्फ़िगर फ़ाइल या कस्टम फ़ाइल) हैश में शामिल नहीं है? – Qstonr

+0

प्रत्येक फाइल तैनात की जा रही है।हैश सभी .manifest फ़ाइल में संग्रहीत हैं। आपके पास हैशिंग फ़ाइलों के बारे में कोई विकल्प नहीं है, यह एक बार काम करने पर क्लिक करता है। यह एक सुरक्षा उपाय है जो – codeConcussion

+0

@codeConcussion के साथ छेड़छाड़ किए जाने वाले तैनाती के खिलाफ सुरक्षा करता है, क्या आप जानते हैं कि कुछ बदल गया है, क्या यह 2015 नेट फ्रेमवर्क के नए संस्करणों के साथ इन दिनों हासिल करने का एक और तरीका है? – Tuco

1

हम हमारी कंपनी में ClickOnce का उपयोग कर रहे हैं, और मैं URL प्रति एक पैकेज प्रकाशित करने के लिए किया था। हालांकि, आपके मामले में आप हमेशा DNS नाम के साथ प्रकाशित कर सकते हैं, और अपने ग्राहकों को अपने नेटवर्क पर एक ही DNS नाम का उपयोग करने के लिए कह सकते हैं, और यह हमेशा काम करना चाहिए।

+1

तो क्लाइंट एक ही डीएनएस नाम का उपयोग करने के लिए, और सेटिंग्स यूआरएल पैरामीटर के माध्यम से पारित करने के लिए? – Qstonr

0

एक और बहुत अच्छा नहीं समाधान:

आप अलग अलग "वैकल्पिक समूह" के लिए विन्यास फाइल जगह है और मैन्युअल रूप से ApplicationDeployment.DownloadFileGroup का उपयोग करके एक विशिष्ट विन्यास डाउनलोड कर सकते हैं। लेकिन, मेरे लिए, यह एक आदर्श समाधान नहीं है।

1

आप MSBuild and Multiple environments उपयोगी पर मेरी हाल ही में ब्लॉग पोस्टिंग मिल सकता है। इस बात पर विचार करें कि आपके प्रत्येक ग्राहक का अपना 'पर्यावरण' हो सकता है, जिससे आप अलग-अलग कॉन्फ़िगरेशन को अलग-अलग निर्दिष्ट कर सकते हैं।

सकता है अभी भी

यदि आप इस दृष्टिकोण का इस्तेमाल किया है, तो आप 'संकेत' तैनाती।

गुड लक!

संबंधित मुद्दे