क्या आंतरिक व्यावसायिक अनुप्रयोगों के लिए विंडोज इंस्टालर समझ में आते हैं?


14

मैं इस स्थिति में क्या सामान्य है के लिए एक सामान्य समझ बनाने की कोशिश कर रहा हूं ताकि मैं यह तय कर सकूं कि क्या इसे आगे बढ़ाने के लिए समझ में आता है।

  1. क्या इंस्टॉलर निम्नलिखित के साथ एक विशिष्ट कॉर्पोरेट वातावरण में स्वागत करते हैं?
    • नियंत्रण प्रक्रिया बदलें
    • देव / क्यूए / उत्पादन वातावरण
    • विभिन्न क्षेत्रों (फ़ायरवॉल, डेटाबेस, विंडोज़, आदि) के लिए नामित तैनाती टीमें।
  2. क्या एक "लिटमस टेस्ट" है जिसे एक एप्लिकेशन पर लागू किया जा सकता है यह देखने के लिए कि क्या यह एक इंस्टॉलर बनाने के लिए एक अच्छा उम्मीदवार है? *
    • क्या इंस्टॉलर काफी सरल हैं कि हर एप्लिकेशन में एक होना चाहिए?
    • क्या इंस्टॉलर भी सही उपकरण हैं?
  3. क्या यह उचित है कि डेवलपर्स को इंस्टॉलरों का समर्थन करने के लिए वाईएक्स जैसे कुछ सीखने की उम्मीद है?
    • सामान्य रूप से स्थिरता एक चिंता का विषय है, एक इंस्टॉलर एक आला कौशल बना रहा है?

*

उदाहरण के लिए, मेरे पास winform अनुप्रयोगों का एक सेट है जो एक उत्पादन सर्वर पर एक साझा निर्देशिका में हैं। विशिष्ट समूह इस निर्देशिका से एप्लिकेशन चला सकते हैं लेकिन केवल सिस्टम व्यवस्थापक ही निष्पादन योग्य को संशोधित कर सकते हैं। वर्तमान परिनियोजन प्रक्रिया में एक व्यवस्थापक कॉपी और निष्पादन निर्देशिका और लाइब्रेरीज़ को साझा निर्देशिका में कॉपी / पेस्ट करना शामिल है।

चूंकि एप्लिकेशन व्यक्तिगत उपयोगकर्ताओं की मशीन पर इंस्टॉल नहीं किए जाते हैं, क्या इन अनुप्रयोगों के नए संस्करणों को साझा निर्देशिका में तैनात करने के लिए एक इंस्टॉलर बनाने के लिए समझ में आता है?

Edit--

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

मुझे _PublishedApplications नामक एक NuGet पैकेज मिला है जो वेब परियोजनाओं के लिए _PublishedWebsites के व्यवहार की नकल करता है। विचार यह है कि आप अपनी परियोजनाओं के लिए NuGet पैकेज स्थापित करते हैं और यह एक लक्ष्य जोड़ता है जो बिल्ड कलाकृतियों को आउटपुट पथ में _PublishedApplications निर्देशिका में कॉपी करेगा। कमांड लाइन से MSBuild चलाकर और एक outdirसंपत्ति निर्दिष्ट करके इस व्यवहार को सक्रिय किया जाता है:

msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln

यह आपको निम्नलिखित के समान एक निर्देशिका संरचना देगा:

  • C: \ पथ \ के लिए \ OutDir
    • _PublishedApplications \
      • प्रोजेक्ट 1\
        • dlls, exes, etc.
      • Project2 \
        • ...

वहां से, विभिन्न वातावरणों में निकाले जा सकने वाले जिप का निर्माण काफी दर्द रहित होता है।


6
यदि आपको एक इंस्टॉलर प्रदान करना है, तो क्या आप एक .msiइंस्टॉलर प्रदान कर सकते हैं ? वे, कम से कम, कम से कम दर्द से पूरी तरह से स्वचालित हो सकते हैं। (सामयिक उपयोगकर्ता के लिए अभी भी समझ में नहीं आता है कि अपने स्वयं के अपडेट करने की आवश्यकता है)
ZJR

आपके उदाहरण के लिए: मेरे पास एक स्क्रिप्ट है जो उत्पादन निर्देशिका का नाम अस्थायी नाम पर रखने की कोशिश करती है, सभी एप्लिकेशन फ़ाइलों को नामांकित डीआईआर में कॉपी करती है, और फिर उत्पादन निर्देशिका का नाम वापस अपने पुराने नाम पर रख देती है (और यह प्रत्येक के बाद त्रुटि जाँच करता है!) ) चरण)। फायदा यह है कि जब तक कोई पुराने संस्करण का उपयोग करता है, तब तक पहला नामकरण विफल रहता है और आप गलती से उत्पादन वातावरण को नष्ट नहीं करते हैं। एक अच्छा व्यवस्थापक स्वयं के द्वारा इस तरह की स्क्रिप्ट बनाने में सक्षम हो सकता है, लेकिन यदि आप उनके लिए इस तरह के "इंस्टॉलर" प्रदान करते हैं, तो अन्य लोग धन्यवाद दे सकते हैं। वास्तव में आप संगठन पर निर्भर करता है।
डॉक्टर ब्राउन

@ Mark0978: क्या मुझे यहां "लिनक्स" बनाम "विंडोज" शेख़ी की गंध आती है? यह यहाँ विषय से 100% दूर है।
डॉक्टर ब्राउन

जवाबों:


20

एक इंस्टॉलर हमेशा समझ में आता है, यदि परिनियोजन के लिए प्रासंगिक फ़ाइल (फ़ोल्डर) को कुछ फ़ोल्डर में कॉपी करने और EXE चलाने से अधिक जटिल कुछ भी आवश्यक है। यदि उत्पाद को ठीक से सेट करने के लिए अतिरिक्त कदम उठाने की आवश्यकता होती है, तो इसके बारे में जाने के दो तरीके हैं।

  1. आप किसी का अनुसरण करने के लिए एक सूची लिख सकते हैं। मनुष्य मनुष्य है, किसी ने इसे खराब करने के लिए बाध्य किया है, और फिर आपको फोन करके मदद मांग रहा है क्योंकि आपका कार्यक्रम सही नहीं चल रहा है।
  2. आप एक कंप्यूटर के लिए एक सूची लिख सकते हैं (एक स्क्रिप्ट स्थापित करने के लिए)। इससे यह बहुत कम संभावना है कि उपयोगकर्ता त्रुटि परिनियोजन को खराब कर देगी।

दूसरी ओर, यदि आपके पास कोई सेटअप कार्य नहीं है, जिसे करने की आवश्यकता है, तो बस उन्हें एक zipfile दें। इंस्टॉलर को चलाने की तुलना में यह सरल है।


11

व्याट अपने प्रोग्रामर की टोपी उतारता है और अपने आईटी टोपी के निदेशक को डालता है

यदि यह व्यावसायिक अनुप्रयोग की एक आंतरिक रेखा है, तो आपको केवल एक वातावरण में लक्ष्य की आवश्यकता है - व्यवसाय। मैं आईटी के प्रमुख को बुलाऊंगा और उनसे पूछूंगा कि वे तैनाती का प्रबंधन कैसे करना चाहते हैं। आईटी विभाग कुछ समय से इससे निपट रहे हैं, ताकि उनके पास xcopy या MSI- आधारित विकल्पों या पूरी तरह से आपके वर्तमान विकल्प जैसे कुछ और के लिए एक मजबूत प्राथमिकता हो।

मैं बताता हूं कि विभाग बहुत कम से कम इशारे की सराहना करेगा और संभवतः एक मूल्यवान सहयोगी बन सकता है क्योंकि संभावना है कि वे व्यावसायिक ऐप की मौजूदा लाइन के बारे में अधिक जानते हैं और समस्याओं से आपको एहसास होता है।


5
+1 रॉस व्याट की टोपी उधार लेता है और कहता है कि आईटी टीमें इंस्टॉलर्स से प्यार करती हैं क्योंकि वे इसके पीछे एक फिंगरप्रिंट छोड़ती हैं जो कहती है कि " यह बात स्थापित है "।
रॉस पैटरसन

3
मेरी IT टोपी कहती है कि इसे HTML5 में बनाएँ और डेस्कटॉप पर चीजों को स्थापित करना छोड़ दें!
बोटकोडर

8

विंडोज इंस्टालर अनुप्रयोगों का व्यापक रूप से विंडोज का उपयोग करके वातावरण में आंतरिक व्यावसायिक अनुप्रयोगों को स्थापित करने के लिए किया जाता है। आपको अपने आप से यह भी पूछना चाहिए कि क्या एप्लिकेशन के जीवन के दौरान इसकी संभावना होगी कि इसे उपयोगकर्ता के सिस्टम में अपडेट, पैच, मरम्मत या सफाई से हटाने की आवश्यकता होगी। कई मामलों में उत्तर "हां" है - जिस स्थिति में एक उचित लिखित इंस्टॉलर है, समय के साथ आवेदन को बनाए रखने की कुल लागत को कम कर सकता है। विंडोज इंस्टालर के साथ काम करने के लिए डिज़ाइन की गई अन्य सेवाएं और विशेषताएं हैं, जैसे कि रीस्टार्ट मैनेजर और डब्ल्यूएमआई और उत्पाद और पैच इन्वेंट्री फ़ंक्शन। यदि आपका एप्लिकेशन इनसे लाभान्वित हो सकता है, तो यह एक इंस्टॉलर को शामिल करने का दूसरा कारण है।

आपके एप्लिकेशन के लिए एक उपयोगी इंस्टॉलर विकसित करने के लिए अपफ्रंट की लागत लंबी अवधि में चुकानी पड़ सकती है, और विकास की लागतों को उपयुक्त Windows इंस्टालर संलेखन उपकरण, जैसे कि WiX या InstallShield या किसी अन्य का चयन करके कम किया जा सकता है।


7

सभी इंजीनियरिंग निर्णयों के साथ, यह निर्भर करता है।

संभवतः सबसे महत्वपूर्ण कारक यह समझना है कि आपकी स्थापना प्रक्रिया का उपभोक्ता कौन है और विकास टीम के पास क्या कौशल है।

चूंकि यह आंतरिक है, मुझे लगता है कि यह एक आंतरिक आईटी विभाग द्वारा तैनात किया गया है। वे संभवतः शेल के कमांड करने के लिए कोई अजनबी नहीं हैं।

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

आपके वातावरण में, यह सामान संभवतः विकास या आईटी द्वारा निर्देशित है और शायद ही कभी बदलता है। इसलिए, मैं उचित स्थान पर फ़ाइलों को कॉपी करने के लिए शेल स्क्रिप्ट का उपयोग करने की सलाह देता हूं। स्क्रिप्ट को आपके उत्पाद के भीतर उस पैकेज के भाग के रूप में रहना चाहिए जो जारी किया गया है। यह आपके ऐप के साथ-साथ संस्करण भी नियंत्रित होना चाहिए।

जहां मैं काम करता हूं, हमारा पूरा वेब एप्लिकेशन इंस्टॉलशिल्ड विज़ार्ड के माध्यम से स्थापित होता है, जो प्रश्नों का एक गुच्छा पूछता है, जिनमें से अधिकांश फ़ाइल सिस्टम स्थान, डीबी कनेक्शन जानकारी और अन्य सेटिंग्स हैं जो बस कॉन्फ़िगर फ़ाइलों में समाप्त होती हैं। इसे स्वचालित करना मुश्किल है। चूँकि इसके मूल में वेब ऐप इंस्टालेशन ने सिर्फ एक दो डेटाबेस बनाए और फाइलों को कॉपी किया, इसलिए मैं एंट या पॉवर्सशेल का उपयोग करके एक नया इंस्टॉलर लिख रहा हूं, जो केवल .sql फाइल और कॉपी फाइलों को चलाता है।

तब हर कोई समझ सकता है कि यह कैसे काम करता है और इसे अधिक प्रभावी ढंग से बनाए रखता है।


मुझे लगता है कि लिपियों को तैनात करना मेरे लिए एक व्यवहार्य समाधान होगा। मैं चिंतित था कि यह इंस्टॉलर की कार्यक्षमता को सुदृढ़ कर सकता है और इसलिए मैं यह देखना चाह रहा था कि क्या इंस्टॉलर के मार्ग पर जाना आसान होगा। आपके उत्तर से ऐसा लगता है कि इंस्टालर ओवरहिल हो सकते हैं और साथ ही इसे बनाए रखना आसान नहीं होगा।
user1529856

बिल्कुल सही। यह इंस्टॉलर की कार्यक्षमता का फिर से आविष्कार कर रहा है, लेकिन यह इंस्टॉलर है जो संभवतः ओवरकिल है।
ब्रेंडन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.