2010-06-21 10 views
5

मैंने एक छोटा ऐप लिखा है जिसे मुझे 700+ कंप्यूटरों में वितरित करने की आवश्यकता है, समस्या यह है कि कंप्यूटर इंटरनेट कनेक्शन के साथ स्थापित नेट फ्रेमवर्क के किसी भी संस्करण के साथ विंडोज के किसी भी संस्करण को चला सकता है (हालांकि अधिकतर एक्सपी या बेहतर) ओसी 3 से डायलअप तक।मैं .NET के अज्ञात संस्करण वाले कंप्यूटरों पर सी # ऐप्स कैसे वितरित करूं?

मुझे बंडलिंग माना जाता है। मेरे आवेदन के साथ, लेकिन नेट इंस्टॉलर कम से कम 3 9 एमबी है और यह सचमुच डायलअप वाले किसी के लिए घंटों का समय लेगा।

तो क्या कोई तरीका है कि मैं या तो विशिष्ट डीएलएल को बंडल कर सकता हूं जिसे एप्लिकेशन की आवश्यकता है, या पूरी चीज को मूल कोड में परिवर्तित कर सकते हैं?

धन्यवाद --Mike

+0

टिप्पणियां पढ़ने के बाद, और कुछ और शोध करने के बाद, वास्तव में निम्न समस्या वाले लक्ष्य को लक्षित करने के अलावा, इस समस्या का समाधान नहीं है। – edude05

उत्तर

11

एक इंस्टालर का उपयोग करें।

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

यदि आपको कुछ और जटिल की आवश्यकता है, तो आप Nullsoft Scriptable Install System, InstallAware, या InstallShield जैसे कुछ का उपयोग कर सकते हैं।

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

यदि आप .NET Framework पर निर्भरता को हटाना चाहते हैं, तो आपको मूल एप्लिकेशन में संकलित कुछ ऐसा करने के लिए अपने एप्लिकेशन को फिर से लिखना होगा (यहां तक ​​कि एनजीएनई फ्रेमवर्क के बिना भी काम नहीं करेगा)।

+0

हालांकि, यह नहीं रोकेगा कि ग्राहकों को बड़े ढांचे को डाउनलोड करने की आवश्यकता है यदि उनके पास नहीं है। –

+0

उपयोगकर्ताओं के प्रतिशत के लिए (ए) डायल-अप पर हैं (यूएस में सभी उपयोगकर्ताओं का केवल 10%), (बी) पहले से ही ढांचा नहीं है, और (सी) ढांचे को पाने का कोई अन्य साधन नहीं है । – Joe

+0

आपने वास्तव में ढांचे को स्थापित नहीं किया है, तो आप बस इंस्टॉल में डीएलएस शामिल कर सकते हैं, अगर आप सभी आवश्यक डीएलएस पर स्थानीय को कॉपी करें और फिर उन्हें – msarchet

0

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

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

यदि आप इसे मूल कोड में नहीं लिखना चाहते हैं, तो आपकी अन्य शर्त ढांचे के निचले संस्करण का उपयोग करना है। 4.0 से 4.0 के मुकाबले बाजार में प्रवेश बहुत अधिक होगा।

+1

मामूली बिंदु, मुझे यकीन नहीं है कि 1.1 एक अच्छा विकल्प होगा, मुझे लगता है कि यह नए विंडोज संस्करणों पर स्थापित नहीं है, इसलिए यदि कोई सबसे आम उपयोग करने का तरीका नीचे चला गया है। नेट संस्करण में उन्हें शायद 1.1 बनाम 2.0 का शोध करना चाहिए उनके उपयोगकर्ताबेस। –

0

Wikipedia से (नहीं परम सत्ता है, लेकिन आम तौर पर बात की इस तरह के बारे में विश्वसनीय):

Windows Vista .NET फ्रेमवर्क के संस्करण 3.0 शामिल हैं।

तो विंडोज 7 इसमें भी शामिल होगा।

इसलिए, यह केवल वास्तव में आपके एक्सपी क्लाइंट्स के बारे में चिंता करने की ज़रूरत है।

मुझे हाल ही में विंडोज एक्सपी को पुनर्स्थापित करना पड़ा और जब तक मुझे एसपी 3 मिल गया और उसके बाद के सभी पैच मेरे पास .NET 3.5 स्थापित भी था। हालांकि मैं विजुअल स्टूडियो को भी इंस्टॉल कर रहा था, लेकिन मैं आपको 100% गारंटी नहीं दे सकता कि हर किसी के पास आवश्यक संस्करण होगा।नेट स्थापित है, लेकिन यह एक महत्वपूर्ण अनुपात होने वाला है, इसलिए आप अनावश्यक चिंता कर सकते हैं।

1

ऐसा करना संभव है, लेकिन आसान या सस्ता तरीका नहीं है।

उदाहरण के लिए, http://www.remotesoft.com/

0

नेट का प्रयोग न करें देखें। यदि आपके पास ईर्ष्या पर कोई नियंत्रण नहीं है, तो व्यापक वितरण की आवश्यकता है, और 30 एमबी डाउनलोड की आवश्यकता नहीं है, तो आप देशी कोड का उपयोग करके बहुत ज्यादा अटक गए हैं। आपका सबसे अच्छा शर्त सी ++ होगा।

वैकल्पिक रूप से, जैसा कि अन्य ने सुझाव दिया है, आप Remotesoft जैसे कुछ का उपयोग करने का प्रयास कर सकते हैं।

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