2009-02-11 12 views
8

एक्सेल वीएसटीओ कैसे काम करता है? अगर मैं विजुअल स्टूडियो 2005 में एक्सेल वर्कबुक समाधान बनाता हूं तो मैं एक्सेल ऑब्जेक्ट मॉडल तक पूरी तरह से एक्सेस कर सकता हूं और एक्सेल शीट को डिज़ाइन सतह के रूप में भी देख सकता हूं। जब मैं समाधान का निर्माण करता हूं तो मुझे .XLS फ़ाइल और .DLL (मेरा सी # कोड युक्त) मिलता है।एक्सेल वीएसटीओ कैसे काम करता है?

मैं अब तक एक्सेल शीट बस डबल क्लिक करके .XLS पर शुरू कर सकते हैं और वहाँ अपने सभी सी # कोड और किसी भी नियंत्रण मैं चादर पर गिरा आदि

कैसे चादर संदर्भित कर रहा है के साथ मेरी चादर कामकाज है .DLL? एक्सेल वर्कबुक/शीट का कौन सा हिस्सा यह बताता है कि इसे सीएलआर को आग लगाना और मेरी असेंबली की मेजबानी करना है?

उत्तर

7

this (धन्यवाद PintSizedCat) Excel 2003 के निम्नलिखित के लिए के अनुसार होता है:

माइक्रोसॉफ्ट ऑफिस आवेदन चेकों कस्टम दस्तावेज़ गुण देखने के लिए कि क्या वहाँ कोड प्रबंधित कर रहे हैं दस्तावेज़ के साथ जुड़े एक्सटेंशन। अधिक जानकारी के लिए, कस्टम दस्तावेज़ गुण अवलोकन देखें।

अगर वहाँ प्रबंधित कर रहे हैं कोड एक्सटेंशन, आवेदन भार AddinLoader.dll। यह एक अप्रबंधित DLL दृश्य स्टूडियो कार्यालय द्वितीय संस्करण क्रम के लिए 2005 के लिए उपकरण लोड करने वाला घटक है। अधिक जानकारी के लिए, Office रनटाइम अवलोकन के लिए विजुअल स्टूडियो टूल्स देखें।

AddinLoader.dll नेट फ्रेमवर्क लोड करता है और कार्यालय क्रम के लिए प्रबंधित दृश्य स्टूडियो उपकरण के भाग शुरू होता है।

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

.NET Framework नीति के विरुद्ध असेंबली द्वारा प्रस्तुत साक्ष्य मान्य करता है। यदि यह विफल रहता है, तो त्रुटि उठाई जाती है। यदि यह गुजरता है, तो प्रक्रिया जारी है।

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

Office रनटाइम के लिए विजुअल स्टूडियो टूल्स एप्लिकेशन डोमेन में असेंबली लोड करता है।

Office रनटाइम के लिए विजुअल स्टूडियो टूल्स आपके अनुकूलन असेंबली में स्टार्टअप ईवेंट हैंडलर को कॉल करता है। अधिक जानकारी के लिए, Office Project ईवेंट के लिए विजुअल स्टूडियो टूल्स देखें।

अपने परीक्षण परियोजना की Excel कार्यपुस्तिका में मैं दो कस्टम गुण होते हैं:

_AssemblyName, मूल्य = * _AssemblyLocation, मूल्य = {533b2c13-a125-418a-bfff-9546b0762807}

मुझे लगता है इन वे गुण हैं जो मेरी असेंबली में वीएसटीओ रनटाइम को निर्देशित करते हैं।

5

यह सब रजिस्ट्री में किया जाता है, तो आप HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel में महत्वपूर्ण या अपने समकक्ष आवेदन को खोजने के लिए सक्षम होना चाहिए। मुझे COM Addins के साथ और अधिक अनुभव है जो रजिस्ट्री में कहीं और पंजीकृत हैं। इस कुंजी में लोडबहाइवर आइटम होना चाहिए जिसका उपयोग यह निर्धारित करने के लिए किया जाता है कि एप्लिकेशन को कैसे लोड किया जाता है (2 मैन्युअल रूप से लोड होता है, 3 स्टार्टअप पर स्वचालित रूप से लोड होता है)।

क्या आपके पास अपने VSTO के लिए एक सेटअप प्रोजेक्ट है? वहां के अंदर आप सेट की गई रजिस्ट्री कुंजी देख सकते हैं, लेकिन सेटअप प्रोग्राम को जीएसी में वीएसटीओ को भी पंजीकृत/करना चाहिए (हालांकि इसके लिए मेरा शब्द न लें क्योंकि मैं वीएसटीओ के साथ थोड़ा सा झटकेदार हूं जैसा मैंने कहा था)।

उम्मीद है कि यह मदद करता है, मैं कोशिश करता हूं और आपके लिए कुछ और जानकारी ढूंढूंगा।

संपादित करें आपको निम्नलिखित http://msdn.microsoft.com/en-us/library/bb386298.aspx पढ़ने का प्रयास करना चाहिए जो आपको एडिन के बारे में बताएगा। यह वास्तव में एक COM होस्ट के चारों ओर एक रैपर है जो रजिस्ट्री से भरा हुआ है और कुछ इंटरऑपरेबिलिटी कोड का उपयोग करके वीएसटीओ वार्तालाप करता है।

इसके अलावा उपयोगी http://msdn.microsoft.com/en-us/library/23cw517s.aspx (कार्यालय के लिए दृश्य स्टूडियो उपकरण के साथ प्रारंभ करना है, यह दस्तक नहीं है, क्योंकि यह में प्रारंभ करना कहते हैं, वहाँ वहाँ में उपयोगी जानकारी का एक बहुत कुछ है) कर रहे हैं और http://msdn.microsoft.com/en-us/library/hy7c6z9k.aspx (जो पहले से जुड़ा हुआ है और है वीएसटीओ एडिन का एक सिंहावलोकन)।

+0

मुझे reg कुंजी के नीचे एक नज़र थी और मेरे VSTO .Net प्रोजेक्ट के लिए वहां नहीं है (2 एन एडिन के साथ एन 'एडिनस उप डीआईआर है)। मेरे पास अभी तक मेरे वीएसटीओ के लिए एक सेटअप प्रोजेक्ट नहीं है। – ng5000

+0

यह HKEY_CURRENT_USER के अंतर्गत हो सकता है –

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