c# एक साधारण इंस्टॉलर में दृश्य स्टूडियो प्रकाशित परियोजना



visual-studio visual-studio-2017 (1)

अद्यतन : सितंबर 2018 - चूंकि यह "उत्तर" हाल ही में अस्वीकृत हो गया था, इसलिए मुझे यह देखने के लिए कुछ और लिंक जोड़ने का प्रयास करें कि क्या उत्तर की मंशा को और अधिक स्पष्ट किया जा सकता है। अत्यधिक नाटकीय नहीं है, लेकिन:

As deployment specialists we have to warn people when they commit to using a tool that is bound to fall apart for them down the line when more advanced deployment requirements invariably surface

इंस्टॉलर परियोजनाओं को कई बार वापस खींच लिया गया है और फिर विज़ुअल स्टूडियो में फिर से पेश किया गया है । हमेशा इन प्रोजेक्ट प्रकारों (बस बड़े वाले) के साथ देखी गई समस्याओं पर आधारित:

1) कोई MSBuild समर्थन (मेरे द्वारा बड़े पैमाने पर परीक्षण नहीं किया गया है, लेकिन दूसरों के द्वारा), 2) केवल सिस्टम मोड में चल रहे मोड को कस्टमाइज़ किया गया है (GUI में सम्मिलित नहीं है), 3) समग्र रूप से सीमित नियंत्रण (हमेशा विज्ञापित शॉर्टकट, कॉन्फ़िगर करने की क्षमता नहीं) कुछ चीजें, आदि ...), 4) उचित सेवा स्थापना के लिए कोई समर्थन नहीं है - इसके बजाय कस्टम क्रियाओं की आवश्यकता है, 5) बंडल के लिए बहुत कम उपलब्ध आवश्यक शर्तें, 6) अल्प लचीलेपन के साथ अल्पविकसित जीयूआई, 7) एमएसआई को परिभाषित करना संभव नहीं लगता है। सुविधाएँ (सुविधाओं और घटकों के रूप में), 8) कस्टम क्रियाओं आदि के लिए 32/64 बिटनेस मुद्दों के साथ समस्याएं ...

इस प्रकार के प्रोजेक्ट्स और इसकी समस्याओं पर एक पुराना MSDN पृष्ठ: समस्या निवारण सेटअप और परिनियोजन प्रोजेक्ट्स

MSI विशेषज्ञ क्रिस पेंटर और अन्य:

मेरी राय में परियोजना का प्रकार केवल simple.NET अनुप्रयोगों के लिए काम कर सकता है। कैलिबर की कोई भी जटिलता और आप परेशानी में हैं। SQL Scripts , IIS , उचित COM / COM+ , Users & Groups , Shares , Firewall Rules , Custom GUI , आदि ... वाणिज्यिक उपकरण और WiX इन चीजों के लिए उन्नत समर्थन है। संकलित MSI फ़ाइलों के इंटर्नल भी उप-मानक (स्वयं-पंजीकरण का उपयोग, सेवाओं के लिए कस्टम क्रियाएं, आदि ...) हैं। मैं अक्सर अनुभव करता हूं कि उपकरण "अज्ञात कारण" के लिए भी काम करना बंद कर देता है। अचानक यह संकलन नहीं होगा। ठोस उदाहरण (फिक्स के साथ)।

विकल्प :

WiX Burn नामक एक घटक होता है जो ऐसे setup.exe लांचर / डाउनलोडर्स / बूटस्ट्रैपर्स बनाने के लिए Burn जाता है - जो अनुक्रम में कई इंस्टॉलेशन चलाने और / या पूर्वापेक्षाएँ स्थापित करने के लिए उपयोग किया जाता है (एक बहुत ही सामान्य कार्य - विज़ुअल स्टूडियो प्रोजेक्ट केवल कुछ आवश्यक शर्तें) का समर्थन करता है।

इस बर्न फीचर का उपयोग करने के लिए वाईएक्स एक्सएमएल मार्कअप कोड लिखना आवश्यक है। वाणिज्यिक टूल Installshield और एडवांस्ड इंस्टॉलर ऐसी setup.exe फ़ाइलों को बनाने के लिए GUI- सुविधाएँ प्रदान करते हैं।

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

विजुअल स्टूडियो इंस्टॉलर परियोजनाओं (और बग) की सीमाओं को देखते हुए, मेरा मानना ​​है कि एक अलग टूल का उपयोग करने के लिए सही समाधान है: क्या इंस्टॉलेशन उत्पाद का उपयोग करना है? InstallShield, WiX, समझदार, उन्नत इंस्टालर, आदि । यदि आपको कुछ भी उन्नत करने की आवश्यकता है, तो आप अन्यथा संघर्ष करेंगे। अधिक उन्नत टूल के साथ यह कम से कम संभव है कि आपको क्या करना है, भले ही यह कई बार अधिक शामिल हो।

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

https://code.i-harness.com

मुझे एक बड़ी परियोजना मिली है, जिसमें कई वर्ग, 500+ चित्र और 20+ पाठ फ़ाइलें हैं जो उक्त परियोजना से जुड़ी हैं।

मैं प्रोजेक्ट पर राइट क्लिक करके अपने प्रोजेक्ट को प्रकाशित कर रहा project->properties , और पब्लिश टैब पर क्लिक कर रहा हूं। मैंने resources रूप में पाठ फ़ाइलों और छवियों को पहले ही शामिल कर लिया है।

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

खैर, अपने आवेदन को प्रकाशित करते समय, मैं एक आउटपुट निर्देशिका निर्दिष्ट करता हूं, और मैं इन फ़ाइलों के साथ छोड़ दिया जाता हूं:

  • अनुप्रयोग फ़ाइलें
  • MyProjectName.application (प्रकट?)
  • setup.exe

अगर मैं setup.exe चलाता हूं, तो मैं एप्लिकेशन इंस्टॉल कर सकता हूं और बिना किसी समस्या के इसे चला सकता हूं। हालांकि, न केवल मुझे यह चुनने की अनुमति नहीं देता है कि इसे कहां स्थापित करना है, लेकिन मुझे इन सभी फ़ाइलों को उपयोगकर्ता को भेजना होगा। मैंने एक दोस्त को सिर्फ setup.exe भेजने की कोशिश की और यह कहा कि वे आवश्यक फाइलों को याद कर रहे थे (जो मैं यह मान रहा हूं कि application files और .application किस लिए थे)।

मैं इन सभी को एक इंस्टॉलर में बाँधने के बारे में कैसे जाऊँगा, एक और अधिक बारीकी से मेल खाता है कि आप एक एंटरप्राइज़ एप्लिकेशन कैसे स्थापित करेंगे (क्रोम, एक्लिप्स, फोटोशॉप आदि को स्थापित करने के बारे में सोचें)?

मैं एक फ़ाइल है जो इंस्टॉलर है और उपयोगकर्ताओं को डाउनलोड करने में सक्षम होने के लिए सक्षम होने के लिए प्यार करता हूँ।

धन्यवाद





installer