2014-09-24 15 views
6

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

इस http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx तरह है, लेकिन मैं धारणा है कि पूरे DLL में बंडल मिलता है।

धन्यवाद!

संपादित करें: क्योंकि अंतिम डिलिवरेबल डीएलएल के आकार पर बाहरी बाधाएं हैं, इसलिए इसे एक पूर्ण अंतिम उपाय है - मुझे पता है कि एकमात्र अन्य विकल्प केवल कोड को डुप्लिकेट करने के लिए है जिसे मैं वर्बैटिम का उपयोग करता हूं।

+0

व्याख्या करने के लिए @BradleyDotNET: नहीं – spender

+0

@spender एक जवाब में बदल दिया, कि एक ही बात :) – BradleyDotNET

+0

जेफरी रिक्टर – kennyzx

उत्तर

5

एक शब्द में: नहीं

याद रखें कि भले ही आप केवल कुछ कार्यों का उपयोग, वहाँ पुस्तकालय है कि उन कार्यों का उपयोग में होने की संभावना कई अन्य समारोह कर रहे हैं, कि तुम भी के बारे में पता नहीं है!

आप क्योंकि आप सभी निर्भरता के लिए पहुँच नहीं है ऐसा नहीं कर सकते। यह भी याद रखें कि ये निर्भरताएं एक और डीएलएल में भी रह सकती हैं, और आपको उसी कारण से संपूर्ण DLL शामिल करने की आवश्यकता है।

+0

तो यहां तक ​​कि अगर मैं अप्रत्यक्ष रूप से उपयोग किए जाने वाले कार्यों का सेट लाइब्रेरी द्वारा प्रदान की गई सभी कार्यक्षमताओं का एक छोटा सबसेट है, तो मुझे उनमें से किसी का उपयोग करने के लिए अप्रयुक्त और असंबंधित चीजों का एक सेट खींचने की आवश्यकता है? – bfops

+0

@bfops हाँ। डिजाइनरों ने पुस्तकालय में सभी को समाहित करना चुना, और वास्तव में आप इसके बारे में बहुत कुछ नहीं कर सकते हैं। यदि यह * आपकी * लाइब्रेरी थी, तो आप केवल अपने प्रोजेक्ट में फ़ंक्शंस और उनकी निर्भरताओं की प्रतिलिपि बना सकते हैं, लेकिन चूंकि यह नहीं है, तो आप बहुत ज्यादा अटक गए हैं। – BradleyDotNET

+0

सी # के साथ इस तरह की कोई समस्या नहीं है? सी या सी ++ में, मैं काफी हद तक निश्चित हूं कि मैं एक पुस्तकालय को स्थिर रूप से लिंक कर सकता हूं और केवल वास्तव में उपयोग किए जाने वाले कार्यों को अंतिम निष्पादन योग्य में समाप्त कर दिया जाएगा। यहां मेरे विकल्प बड़े पैमाने पर ब्लोट या कोड डुप्लिकेशन हैं। – bfops

3

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

जैसे बयानों हम विकसित और NET अनुप्रयोगों

की सीमा के लिए देशी संकलन सुधार करने के लिए इंटरनेट लेकिन वेब क्षुधा \ Azure के बारे में विशेष कुछ भी नहीं पर पाया जा सकता जारी रहेगा।

तब तक, इस सवाल का जवाब है कोई

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