2012-04-06 8 views
8

मैं हाल ही में एक कंप्यूटर पर एक सी # अनुप्रयोग तैनात करने की कोशिश कर रहा हूं जिसमें .NET स्थापित नहीं है।एक .NET अनुप्रयोग पैकेजिंग तो यह बिना किसी कंप्यूटर पर चलाएगा .NET

मुझे पता है कि कई स्टैक ओवरव्लो पर एक ही विषय के आसपास प्रश्न हैं।

Packaging up the .net framework with a .net application deployment

Run a .net application without installing .net client profile?

Run C# windows application in windows XP without installing .NET Framework

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

मुझे .NET ढांचे के कौन से आइटम पैकेज करने की आवश्यकता होगी? यदि मैं सभी को पैकेज करने का प्रबंधन करता हूं, तो उन्हें उसी निर्देशिका में रखेगा जैसा कि मैं चला रहा हूं एप्लिकेशन को चलाने की अनुमति देता है?

मुझे इस पर एक समाधान मिला, Microsoft .NET Redist Package। इसके साथ एकमात्र समस्या यह है कि इसमें स्वयं का एक जीयूआई है। इसके अलावा, यह एकदम सही फिट होगा। तो, क्या कोई मुझे दो चीजों में से एक बता सकता है:

क्या कोई कमांड लाइन .NET पैकेज है, और यदि हां, तो मैं इसे कहां डाउनलोड करूं?

यदि ऐसा नहीं है, या ऐसा करने के लिए अव्यवहारिक होगा, तो लगभग .NET इंस्टॉलेशन से मुझे कौन सी निर्देशिकाओं की प्रतिलिपि बनाना होगा?

मैं समझता हूं कि ये फ़ाइलें और निर्देशिका सिस्टम विशिष्ट हैं, और मेरा .NET स्थापना आपके कंप्यूटर पर काम नहीं कर सकती है, लेकिन यदि सी # जावा की तरह है, तो यह प्राप्त किया जाना चाहिए। क्या यह? आकार एक सीमा नहीं है, इससे कोई फर्क नहीं पड़ता कि आवेदन है या नहीं और इसकी सभी फाइलें 1 जीबी है, या यदि यह केवल 1 एमबी है।

यदि कोई अन्य समाधान नहीं है, तो मैंने अपने कार्यक्रम की सभी निर्भरताओं की जांच के लिए Dependency Walker का उपयोग किया। अगर मैं उनमें से अधिकतर पैकेज करना चाहता था, तो मेरा आवेदन, सिद्धांत रूप में, काम करेगा?

+0

ये स्थिर लिंकर्स एक भयानक विचार हैं। आपके एप्लिकेशन को सुरक्षा सुधारों और अन्य संवर्द्धन (एला विंडोज अपडेट) से लाभ नहीं होगा। –

उत्तर

12

.NET के लिए, आप वास्तव में बस उचित .NET ढांचे को स्थापित करना होगा।

dotnetfx35.exe /q /norestart 

कमांड लाइन विकल्पों पर जानकारी के लिए, options for 3.5 और .NET 4.0 के लिए: .NET ढांचे स्थापना जैसे मूक इंस्टॉल, के लिए अनुमति देने के लिए कमांड लाइन विकल्पों में शामिल हैं करता है।

कहा जा रहा है कि, अधिकांश स्थापना पैकेज स्थापना के हिस्से के रूप में आपके लिए इन विवरणों को संभाल लेंगे। एक सभ्य इंस्टॉलर का उपयोग करना इस निर्भरता का स्वचालित रूप से ख्याल रखेगा।

+0

पूरी तरह से काम करता है! सहायता के लिए धन्यवाद! – Xyene

+0

क्या यह दिखाने के लिए कोई आदेश है कि यह कितना स्थापित है, प्रतिशत के प्रारूप में, या वर्तमान फ़ाइल निकालने आदि ...? मैंने आपके द्वारा पोस्ट किए गए 3.5 लिंक के विकल्पों की जांच की, लेकिन वहां उन पंक्तियों में से कुछ भी नहीं मिला। – Xyene

+0

सबसे पहले आप एक जीयूआई नहीं चाहते हैं और अब आप करते हैं? –

8

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

2

यदि आप अपने आवेदन को तैनात करने की योजना बना रहे हैं (और सेटअप प्रक्रिया को मानने के लिए बहुत जटिल होने की आवश्यकता नहीं है), तो आप केवल Setup project in Visual Studio बना सकते हैं और फिर पूर्व-आवश्यकताएं बूट कर सकते हैं (.NET ढांचे, और अन्य सामान जो आपको लगता है आवश्यकता हो सकती है)।

आप चरणों इन MSDN लेख में वर्णित का पालन कर सकते हैं:

एक पूर्वाभ्यास this CodeProject article में दी गई है।

अधिक जटिल तैनाती परिदृश्यों (जैसे आपके ऐप के साथ डिवाइस ड्राइवर स्थापित करना, या बेहतर स्थानीयकरण समर्थन) के लिए, मैं WiX (Windows Installer XML) toolset में देखने की अनुशंसा करता हूं। यह एक टूलसेट है जो विंडोज इंस्टॉलेशन पैकेज बनाता है, जिसे आप विजुअल स्टूडियो के अंदर एक्सएमएल फाइलों का उपयोग करके कॉन्फ़िगर करते हैं। वाईएक्स विभिन्न bootstrapping scenarios का भी समर्थन करता है।

This page वीएस सेटअप परियोजनाओं, वाईएक्स, और इंस्टॉलशील्ड के बीच अंतर को शामिल करता है।

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