visual studio - विजुअल स्टूडियो प्रोजेक्ट गुणों में विभिन्न "बिल्ड एक्शन" सेटिंग्स क्या हैं और वे क्या करते हैं?




visual-studio projects-and-solutions (5)

दस्तावेज़ीकरण से:

बिल्डएक्शन प्रॉपर्टी इंगित करती है कि बिल्ड स्टूडियो निष्पादित होने पर विज़ुअल स्टूडियो फ़ाइल के साथ क्या करता है। BuildAction में कई मानों में से एक हो सकता है:

कोई नहीं - फ़ाइल प्रोजेक्ट आउटपुट समूह में शामिल नहीं है और बिल्ड प्रक्रिया में संकलित नहीं है। एक उदाहरण एक टेक्स्ट फ़ाइल है जिसमें रीडमी फ़ाइल जैसे दस्तावेज़ शामिल हैं।

संकलन - फ़ाइल को निर्माण आउटपुट में संकलित किया गया है। यह सेटिंग कोड फ़ाइलों के लिए प्रयोग की जाती है।

सामग्री - फ़ाइल संकलित नहीं है, लेकिन सामग्री आउटपुट समूह में शामिल है। उदाहरण के लिए, यह सेटिंग एक .htm या अन्य प्रकार की वेब फ़ाइल के लिए डिफ़ॉल्ट मान है।

एम्बेडेड संसाधन - यह फ़ाइल मुख्य परियोजना निर्माण आउटपुट में एक डीएलएल या निष्पादन योग्य के रूप में एम्बेडेड है। यह आमतौर पर संसाधन फ़ाइलों के लिए उपयोग किया जाता है।

अधिकांश भाग के लिए, आप जो भी विजुअल स्टूडियो इसे डिफ़ॉल्ट रूप से सेट करते हैं, उसे ले लें ... मैं समाधान एक्सप्लोरर में चयनित प्रत्येक फ़ाइल के लिए BuildAction प्रॉपर्टी का जिक्र कर रहा हूं। कई विकल्प हैं और यह जानना मुश्किल है कि उनमें से प्रत्येक क्या करेगा।


पृष्ठ - निर्दिष्ट XAML फ़ाइल लेता है, और बीएएमएल में संकलित करता है, और आपके असेंबली (विशेष रूप से AssemblyName.g.resources) के लिए प्रबंधित संसाधन स्ट्रीम में आउटपुट एम्बेड करता है, इसके अतिरिक्त, यदि आपके पास रूट XAML तत्व पर उचित विशेषताएँ हैं फ़ाइल, यह एक blah.g.cs फ़ाइल बनाएगी, जिसमें उस पृष्ठ के लिए "codebehind" का आंशिक वर्ग होगा; इसमें मूल रूप से फ़ाइल को स्मृति में पुन: हाइड्रेट करने के लिए बीएएमएल गोप को कॉल करना शामिल है, और अब अपनी बनाई गई वस्तुओं में से किसी भी सदस्य चर को सेट करने के लिए (उदाहरण के लिए यदि आप किसी आइटम पर x: name = "foo" डालते हैं , आप यह करने में सक्षम होंगे। foo.Background = बैंगनी; या इसी तरह।

एप्लीकेशनडिफिनिशन - पृष्ठ के समान, सिवाय इसके कि यह ऑनस्टेप फर्थर जाता है, और आपके एप्लिकेशन के लिए एंट्री पॉइंट को परिभाषित करता है जो आपके ऐप ऑब्जेक्ट को तुरंत चालू करेगा, उस पर कॉल करें, जो स्टार्टअपयूरी प्रॉपर्टी द्वारा सेट प्रकार को तुरंत चालू करेगा, और आपके मेनविंडो को देगा ।

साथ ही, स्पष्ट होने के लिए, यह प्रश्न समग्र रूप से इसके परिणाम सेट में घुसपैठ कर रहा है; कोई भी एमएसबिल्ड टास्क बनाकर अतिरिक्त बिल्डएक्शन को परिभाषित कर सकता है। यदि आप% systemroot% \ Microsoft.net \ framework \ v {version} \ निर्देशिका में देखते हैं, और Microsoft.Common.targets फ़ाइल को देखते हैं, तो आपको कई और अधिक समझने में सक्षम होना चाहिए (उदाहरण के लिए, वीएस प्रो और ऊपर के साथ, एक "छाया" कार्रवाई है जो आपको इकाई परीक्षण निजी कक्षाओं में सहायता के लिए निजी एक्सेसर्स उत्पन्न करने की अनुमति देती है।


वीएस -2008 में, दस्तावेज़ प्रविष्टि जो सबसे उपयोगी लगता है:

विंडोज प्रेजेंटेशन फाउंडेशन एक डब्ल्यूपीएफ एप्लीकेशन (डब्ल्यूपीएफ) का निर्माण

एमएस-सहायता: //MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm

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

पृष्ठ एक एक्सएएमएल मार्कअप फ़ाइल की पहचान करता है जिसकी सामग्री को बाइनरी प्रारूप में परिवर्तित किया जाता है और एक असेंबली में संकलित किया जाता है। पेज आइटम आम तौर पर कोड-बैक क्लास के संयोजन के साथ लागू होते हैं।

सबसे आम पृष्ठ आइटम XAML फ़ाइलें हैं जिनके शीर्ष-स्तरीय तत्व निम्न में से एक हैं:

Window (System.Windows..::.Window).

Page (System.Windows.Controls..::.Page).

PageFunction (System.Windows.Navigation..::.PageFunction<(Of <(T>)>)).

ResourceDictionary (System.Windows..::.ResourceDictionary).

FlowDocument (System.Windows.Documents..::.FlowDocument).

UserControl (System.Windows.Controls..::.UserControl).

संसाधन एक संसाधन फ़ाइल की पहचान करता है जिसे एक एप्लिकेशन असेंबली में संकलित किया जाता है। जैसा कि पहले उल्लेख किया गया है, यूआईसीएचएल संसाधन वस्तुओं को संसाधित करता है।

सामग्री किसी सामग्री फ़ाइल को पहचानती है जो किसी एप्लिकेशन के साथ वितरित की जाती है। सामग्री फ़ाइल का वर्णन करने वाले मेटाडेटा को एप्लिकेशन में संकलित किया गया है (असेंबलीएसिओटेड कॉन्टेंटफाइलएट्रिब्यूट का उपयोग करके)।


वीएस -2010 में 'बिल्ड एक्शन' के लिए एक संपत्ति है, और 'कॉपी टू आउटपुट डायरेक्टरी' के लिए भी। इसलिए 'कोई नहीं' की एक क्रिया अभी भी बिल्ड निर्देशिका में कॉपी हो जाएगी यदि प्रतिलिपि संपत्ति 'नई अगर कॉपी करें' या 'हमेशा कॉपी करें' पर सेट की गई है।

इसलिए 'सामग्री' की एक बिल्ड एक्शन को उस सामग्री को इंगित करने के लिए आरक्षित किया जाना चाहिए जिसे आप 'एप्लिकेशन.गेटकंटेंटस्ट्रीम' के माध्यम से एक्सेस करेंगे।

मैंने 'किसी भी' की 'बिल्ड एक्शन' सेटिंग और कुछ बाहरी लिंक किए गए .config के लिए 'कॉपी अगर न्यूर' की 'कॉपी टू आउटपुट डायरेक्ट्री' सेटिंग का उपयोग किया था।

जी


  • कोई नहीं : फ़ाइल प्रोजेक्ट आउटपुट समूह में शामिल नहीं है और बिल्ड प्रक्रिया में संकलित नहीं है। एक उदाहरण एक टेक्स्ट फ़ाइल है जिसमें रीडमी फ़ाइल जैसे दस्तावेज़ शामिल हैं।

  • संकलन : फ़ाइल को बिल्ड आउटपुट में संकलित किया गया है। यह सेटिंग कोड फ़ाइलों के लिए प्रयोग की जाती है।

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

  • एम्बेडेड संसाधन : फ़ाइल को एक विशेष असेंबली मैनिफेस्ट संसाधन में एम्बेड करता है।

  • संसाधन (केवल WPF) : फ़ाइल को साझा में एम्बेड किया गया है (समान सेटिंग वाले असेंबली में सभी फ़ाइलों द्वारा) असेंबली मैनिफेस्ट संसाधन AppName.g.resources नामक।

  • पृष्ठ (केवल WPF) : एक xaml फ़ाइल को baml में संकलित करने के लिए प्रयुक्त bamlbaml को तब Resource रूप में उसी तकनीक के साथ एम्बेडेड किया जाता है (यानी `AppName.g.resources के रूप में उपलब्ध)

  • एप्लीकेशनडिफिनिशन (केवल WPF) : XAML / class फ़ाइल को चिह्नित करें जो आपके एप्लिकेशन को परिभाषित करता है। आप एक्स-क्लास = "नेमस्पेस.क्लासनाम" के साथ कोड-बैक निर्दिष्ट करते हैं और स्टार्टअप फॉर्म / पेज स्टार्टअपयूरी = "विंडो 1.एक्सएमएल" के साथ सेट करते हैं।

  • स्प्लैशस्क्रीन (केवल WPF) : एक छवि जिसे SplashScreen के रूप में चिह्नित किया जाता है स्वचालित रूप से दिखाया जाता है जब एक WPF अनुप्रयोग लोड होता है, और उसके बाद fades

  • डिज़ाइनडाटा : एक्सएएमएल व्यूमोडल्स को संकलित करता है ताकि उपयोगकर्ता स्टूडियो को विजुअल स्टूडियो में नमूना डेटा के साथ पूर्वावलोकन किया जा सके (नकली प्रकारों का उपयोग करता है)

  • DesignDataWithDesignTimeCreatableTypes : XAML व्यू मॉड्यूल को संकलित करता है ताकि उपयोगकर्ता नियंत्रण को विजुअल स्टूडियो में नमूना डेटा के साथ पूर्वावलोकन किया जा सके (वास्तविक प्रकारों का उपयोग करता है)

  • EntityDeploy : (इकाई फ्रेमवर्क) : इकाई फ्रेमवर्क कलाकृतियों को तैनात करने के लिए उपयोग किया जाता है

  • CodeAnalysisDictionary : वर्तनी नियमों के लिए कस्टम शब्द शब्दकोश युक्त एक एक्सएमएल फ़ाइल








projects-and-solutions