विजुअल स्टूडियो एप्लिकेशन को तैनात करने का सबसे अच्छा तरीका जो बिना इंस्टॉल किए चल सकता है


80

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

हालाँकि, इसे अभी भी (किसी तरह) .NET, लाइब्रेरी आदि के सही संस्करण को शामिल करने की आवश्यकता है, इसलिए यह सही तरीके से चलेगा। मुझे पता है कि यह ClickOnce का उपयोग करते समय शामिल है, लेकिन यह अभी भी उपयोगकर्ता के कंप्यूटर पर एप्लिकेशन इंस्टॉल करता है।

क्या कोई तरीका है जिससे यह किया जा सकता है?

EDIT - \ bin \ Debug

myAppName.application
myAppName.exe
myAppName.exe.config
myAppName.exe.manifest
myAppName.pdb
myAppName.vshost.application
myAppName.vshost.exe
myAppName.vshost.exe.config
myAppName.vshost.exe.manifest
extraLibrary.dll

साथ ही दो फ़ोल्डर्स

app.publish
Resources

जवाबों:


106

यह संभव है और भ्रामक रूप से आसान है:

  1. एप्लिकेशन को "प्रकाशित करें" (ड्राइव सी पर कुछ फ़ोल्डर कहते हैं), मेनू बिल्ड या प्रोजेक्ट के गुणों से या तो प्रकाशित करेंप्रकाशित करें । यह ClickOnce एप्लिकेशन के लिए एक इंस्टॉलर बनाएगा ।
  2. लेकिन उत्पादित इंस्टॉलर का उपयोग करने के बजाय , उत्पादित फ़ाइलों (EXE फ़ाइल और .config , .manifest , और .application फ़ाइलें, किसी भी DLL फ़ाइलों, आदि के साथ) खोजें - वे सभी एक ही फ़ोल्डर में हैं और आमतौर पर। bin\Debugपरियोजना फ़ाइल ( .csproj ) के नीचे फ़ोल्डर ।
  3. उस फ़ोल्डर को ज़िप करें (किसी भी * .vhost को छोड़ दें ।) फ़ाइलें और app.publishफ़ोल्डर (उनकी आवश्यकता नहीं है), और .pdb फ़ाइलें जब तक आप सीधे अपने उपयोगकर्ता के सिस्टम पर डिबगिंग नहीं करते हैं (उदाहरण के लिए, रिमोट कंट्रोल द्वारा), और इसे प्रदान करें। उपयोगकर्ताओं के लिए।

एक अतिरिक्त लाभ यह है कि, ClickOnce एप्लिकेशन के रूप में, इसे चलाने के लिए प्रशासनिक विशेषाधिकारों की आवश्यकता नहीं है (यदि आपका आवेदन सामान्य दिशानिर्देशों का पालन करता है जिसके लिए एप्लिकेशन डेटा, आदि के लिए फ़ोल्डर्स का उपयोग करना है)।

.NET के लिए, आप अनुप्रयोग में स्थापित किए जा रहे .NET (या बिल्कुल) के न्यूनतम आवश्यक संस्करण की जांच कर सकते हैं (अधिकांश उपयोगकर्ता पहले से ही इसे इंस्टॉल कर चुके हैं) और Microsoft वेबसाइट पर डाउनलोड पृष्ठ के लिंक के साथ एक संवाद प्रस्तुत करेंगे। (या आपके किसी ऐसे पृष्ठ की ओर इशारा करता है जो Microsoft पृष्ठ पर पुनर्निर्देशित हो सकता है - यह Microsoft URL को बदलने पर इसे और अधिक मजबूत बनाता है)। चूंकि यह एक छोटी सी उपयोगिता है, आप .NET को स्थापित करने के लिए उपयोगकर्ता की संभावना को कम करने के लिए .NET 2.0 को लक्षित कर सकते हैं।

यह काम करता हैं। हम इस पद्धति का उपयोग विकास और परीक्षण के दौरान लगातार अनइंस्टॉल करने और एप्लिकेशन इंस्टॉल करने से बचने के लिए करते हैं और फिर भी अंतिम एप्लिकेशन कैसे चलेगा इसके काफी करीब है।


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

43
जिज्ञासा से बाहर, यह सीधे \ bin \ रिलीज़ से फ़ाइलों की प्रतिलिपि बनाने से कैसे अलग है?
एरिक एस्सिल्डसन

10
मैं यह भी जानना चाहूंगा कि यह सीधे \ bin \ रिलीज़ से फ़ाइलों की प्रतिलिपि बनाने से कैसे भिन्न है?
CoDeGiRl

1
वास्तव में बहुत अच्छा जवाब, मैंने Application Filesप्रकाशित टैब से सभी सूचीबद्ध फाइलों को कॉपी किया और .application, .manifest, .config, .exe and other dlls.. आपके उत्तर में 2 अंक के लिए धन्यवाद सर :) ..
मोहम्मद सूफियान

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

2

पहले आपको फ़ाइल को इसके द्वारा प्रकाशित करना होगा:

  1. BUILD -> PUBLISH या सॉल्यूशन एक्सप्लोरर पर राइट क्लिक प्रोजेक्ट द्वारा -> प्रॉपर्टीज़ -> सॉल्यूशन एक्स्प्लोरर में प्रोजेक्ट को प्रकाशित या सेलेक्ट करें और Alt+ Enter नोट: यदि आप Visual Studio 2013 का उपयोग कर रहे हैं तो प्रॉपर्टीज में आपको BUILD में जाना होगा और फिर आपको डिबग कॉन्स्टेंट को डिसेबल करें और TRACE कॉन्स्टैंट को डिफाइन करें और आप जाने के लिए तैयार हैं। प्रतिनिधित्व

  2. अपनी फ़ाइल को किसी विशेष फ़ोल्डर में सहेजें। उत्पादित फ़ाइलें (EXE फ़ाइल और .config, .manifest और .application फ़ाइलें, किसी भी DLL फ़ाइलें, आदि के साथ खोजें) - वे सभी एक ही फ़ोल्डर में हैं और आमतौर पर bin\Debugप्रोजेक्ट फ़ाइल (.csproj) के नीचे फ़ोल्डर में हैं। ) है। विजुअल स्टूडियो में वे एप्लीकेशन फाइल फोल्डर में होते हैं और उसके अंदर आपको सिर्फ .exe और dll फाइलों की जरूरत होती है। (आपको ClickOnce और अन्य फ़ाइलों को हटाना होगा और फिर इस फ़ोल्डर को ज़िप फ़ाइल बनाकर वितरित करना होगा।)

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


2
आपको विशेष मानों के लिए DEBUG और TRACE को सेट करने की आवश्यकता क्यों है?
पीटर मोर्टेंसन

आपके पास ट्रेस या डीबग सशर्त विशेषता बिल्ड, या दोनों, या दोनों के लिए चालू हो सकती है। इस प्रकार, चार प्रकार के निर्माण हैं: डीबग, ट्रेस, दोनों, या दोनों नहीं। उत्पादन परिनियोजन के लिए कुछ रिलीज़ बिल्ड में न तो हो सकता है; अधिकांश डिबगिंग बिल्ड में दोनों होते हैं। ……………………………………………। ................................. msdn.microsoft.com/en-us/library/aa983575(v=ss .71) .aspx ………………………………………। ……………………………………………। ..... msdn.microsoft.com/en-IN/library/ms164714.aspx
abe312

1
स्टैकओवरफ्लो में मदद हमेशा उन लोगों को दी जाएगी जो इसके लिए पूछते हैं?) मुझे बताओ कि आपको कौन सा हिस्सा समझ नहीं आया? मैंने वास्तव में थोड़ी खोजबीन के बाद अपने तरीके से काम करने वाला एक आवेदन किया। मैं दृश्य स्टूडियो 2013 का उपयोग कर रहा था
abe312 16

1
मुझे VS2015 में "प्रकाशित" नाम से कुछ भी दिखाई नहीं दे रहा है
UUDdLrLrSs

1
Visual Studio 2008 और Visual Studio 2017 में "बिल्ड" मेनू में "पब्लिश <प्रोजेक्ट नाम>" है (शायद इसे स्टूडियो 2015 में छोड़ दिया गया था?)। किसी भी मामले में, यह परियोजना के गुणों से भी किया जा सकता है, "प्रकाशित करें" → "अब प्रकाशित करें" (जैसा कि यहां स्क्रीनशॉट में है)।
पीटर मोर्टेनसेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.