2009-11-29 18 views
16

मैं उत्सुक मैं बनाए जाते हैं जब मैं अपने आवेदन प्रकाशित दो प्रकट फ़ाइलों की जरूरत है कि क्या कर रहा हूँ। यह काम करता है जब मैं उन्हें हटा देता हूं। यदि आवश्यक हो, तो मैंने उन्हें एम्बेड करने की कोशिश की है (परियोजना> एप्लिकेशन> डिफ़ॉल्ट सेटिंग के साथ एम्बेड एम्बेड करें) लेकिन वे अभी भी बाहरी हैं।सी # - क्या मुझे मेनिफेस्ट फाइलों की आवश्यकता है?

उन हैं: (appname).exe.manifest और (appname).application

उत्तर

1

यह आवश्यक है for the purpose of

विधानसभा के संस्करण आवश्यकताओं और सुरक्षा पहचान, और सभी मेटाडाटा विधानसभा के दायरे को परिभाषित करने के लिए और संसाधनों संदर्भ और कक्षाओं

14

को हल करने की जरूरत को निर्दिष्ट मेनिफेस्ट फ़ाइल वर्णन करती है कि आपका एप्लिकेशन कैसे चलाना चाहिए। MSDN से:

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

तो उन्हें हटाना संभवतः गलत काम है, खासकर यदि आप चाहते हैं कि आपका एप्लिकेशन Vista और उससे आगे के डिफ़ॉल्ट रूप से उन्नत हो।

Here एमटी उपकरण है, जो अपने आवेदन में प्रकट एम्बेड करने के लिए प्रयोग किया जाता है के उपयोग पर MSDN से जानकारी दी जा रही।

यह भी ध्यान रखें a really interesting issue Vista में और है कि एक असली पकड़ लिया की तरह लग रहा से परे प्रकट की कैशिंग के विषय में।

5

इसके अलावा, जब VS2003 का उपयोग किया गया था, और आप अपने नियंत्रण को XP इंटरफ़ेस की तरह दिखाना चाहते हैं, तो मेनिफेस्ट में उचित संस्करण 6.x के साथ सामान्य नियंत्रण होंगे जो आपके एप्लिकेशन के साथ उपयोग किया जाता है, फिर पुराने क्लंकी विंडोज 2000 नियंत्रणों के बजाय जीयूआई को "एक्सपी का अच्छा अपडेटेड लुक एंड महसूस" मिलता है। कारण है कि, आप प्रकट एक संसाधन के रूप एम्बेडेड ताकि आप मालसूची फ़ाइल चारों ओर खींचना नहीं है हो सकता है (एक काफी छोटा फ़ाइल ठीक है, यह है) लेकिन फिर भी, यह आवेदन वितरण neater बनाता है।

और साथ ही, .NET 1.1 रनटाइम (अब 2.0+ में तय) में एक बग था, जहां आपके एप्लिकेशन पर एक मैनिफेस्ट का उपयोग किया जाता है, तो इसे अधिक एक्सपी देखो और महसूस करने के लिए जीयूआई अपडेट करने में विफल रहता है। उस समय कामकाज एप्लिकेशन को कॉल करना था। आवेदन करने से पहले DEEvents एप्लिकेशन। रुन (नया फॉर्म());

अब, विस्टा और विन 7 के साथ, मैनिफेस्ट का उपयोग यूएसी के आसपास होने के लिए उन्नत अनुमतियों को निर्दिष्ट करने के लिए किया जाता है जिससे Vista/Win 7 को यूएसी संवाद बॉक्स पॉप अप करने का मौका कम हो जाता है।

+0

Btw, उन्हें कैसे embedd के लिए? – Petr

+3

यह यूएसी संवाद प्रकट होने का मौका कम नहीं करता है - यदि आप निर्दिष्ट करते हैं कि आपके एप्लिकेशन को व्यवस्थापकीय विशेषाधिकारों की आवश्यकता है (जो अधिकांश नहीं करते हैं, तो कृपया ऐसा न करें)। – Zooba

+0

मैं केवल एक EXEcutable फ़ाइल (और सेटिंग फ़ाइल) वितरित करना चाहता हूं ... तो कैसे मैनिफेस्ट एम्बेड किया जा सकता है? आवेदन में विकल्प ऐसा नहीं करता है। – Petr

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