सवाल क्या मैं अभी भी Office 2013 के साथ Microsoft.Office.Interop असेंबली का उपयोग कर सकता हूं?


मुझे विजुअल स्टूडियो 2013 में एक पुरानी प्रोजेक्ट (.Net 2 में) आयात करना था, यह माइक्रोसॉफ्ट प्राइमरी इंटरऑप असेंबली का उपयोग करता है।

विजुअल स्टूडियो ने कहा कि मुझे परियोजना में संदर्भ जोड़ने की जरूरत है। अब मैं गया और कुछ पढ़ा और स्पष्ट रूप से माइक्रोसॉफ्ट ने केवल कार्यालय 2010 के लिए पीआईए जारी किया है? (मेरे पास कार्यालय 2013 है)

अब मैं क्या जानना चाहता हूं।

  1. क्या मैं इसे कार्यालय 2013 के साथ काम करने के लिए प्राप्त कर सकता हूं और पिछड़ा संगत हो सकता हूं?
  2. और यदि भविष्य के लिए जाने के लिए यह एक अच्छा मार्ग है? क्या यह संगत होने जा रहा है? क्योंकि मुझे लगता है कि आपको चाहिए .Net 2 (नवीनतम में) और विंडोज 8 4.5 के साथ आता है और नहीं 3 (डिफ़ॉल्ट रूप से) और अधिकांश नए कंप्यूटरों में Office 2012 या 2013 होने वाला है।

44
2018-01-09 07:17


मूल


मुझे एक ही समस्या का सामना करना पड़ा और मुझे एक प्रस्ताव मिला जो से काम करता था: microsoftsupportchat.com/blog/post/...


जवाब:


पीआईए एक ऐतिहासिक आर्टिफैक्ट हैं, केवल पुराने .NET संस्करणों (v4 से पहले) द्वारा आवश्यक है। उन्हें "एम्बेड इंटरप प्रकार" सुविधा द्वारा पूरी तरह से और सुंदर ढंग से प्रतिस्थापित किया गया है, जिसे "नो पीआईए" सुविधा भी कहा जाता है। विजुअल स्टूडियो 2010 के बाद से समर्थित, जब आप संदर्भ असेंबली चुनते हैं तो आपको इसे प्रॉपर्टी विंडो में वापस मिल जाएगा। यह डिफ़ॉल्ट है True। अंतर्निहित तकनीक को शामिल करने वाला एक अच्छा वीडियो है यहां उपलब्ध है

माइक्रोसॉफ्ट ऑफिस 2013 के लिए पीआईए प्रकाशित नहीं करने का कारण है, वे उम्मीद करते हैं कि आप इसके बजाय इंटरऑप प्रकार एम्बेड करें।

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

वर्कफ़्लो थोड़ा अलग है। संदर्भ जोड़ने के बजाय Microsoft.Office.Interop संदर्भ संदर्भ संवाद, .NET Framework टैब में उपलब्ध असेंबली, अब आप COM टैब का उपयोग करते हैं। और उठाओ, कहो, "Microsoft Excel 15.0 Object Library"एक्सेल का उपयोग करने वाले प्रोग्राम के लिए इंटरऑप प्रकार उत्पन्न करने के लिए। यदि आप पुराने प्रोजेक्ट को लोड करते हैं जो पहले पीआईए का उपयोग करता था तो बस उन संदर्भ असेंबली को हटा दें और उन्हें COM टैब से वापस जोड़ें।

ध्यान दें कि एक सुविधा खो जाती है, जानबूझकर कार्यालय के पुराने संस्करण को लक्षित करना जिसे आपने वास्तव में अपनी dev मशीन पर स्थापित नहीं किया है, अधिक कठिन है। यदि यह एक आवश्यकता है तो आपको उस संस्करण के लिए अभी भी पीआईए की आवश्यकता है, गुण विंडो में एम्बेड इंटरफ़ेस प्रकार को सही करने के लिए मजबूर करें। वास्तव में ऐसा करने में संदिग्ध है, माइक्रोसॉफ्ट के पास पुराने संस्करणों के साथ नए कार्यालय संस्करणों को पूरी तरह से संगत रखने में कठिनाई है। उन्होंने इसे 15 साल तक रखा है लेकिन यह भाप से बाहर हो रहा है। एक सबसे खराब स्थिति परिदृश्य आपके मशीन पर स्थापित किए गए एक नए संस्करण को लक्षित कर रहा है, जो आपके प्रोग्राम को क्रैश करने के लिए उत्तरदायी है बहुत जैसे अपवादों का निदान करना मुश्किल है AccessViolationException

ध्यान दें कि आपको अपने कोड में काम करने की अनुमति देने के लिए छोटे बदलाव करना होगा। सिंथेटिक "XxxxClass"कक्षाएं एम्बेडेड नहीं हैं, बस"Xxxx"इंटरफेस। बस शब्द को हटा दें"Class" वहाँ से नया बयान।


119
2018-01-09 11:05



अरे ... मैं एमएस वर्ड रिपोर्टिंग बना रहा हूं। क्या मैंने एमएस वर्ड के आधुनिक संस्करण के लिए ओपनएक्सएमएल प्रारूप का मुकदमा किया है, मैंने माइक्रोसॉफ्ट.ऑफिस.इंटरोप.ऑर्ड का उपयोग किया है? क्या आप इसे स्पष्ट कर सकते हैं? धन्यवाद! - Academy of Programmer
इस जवाब के लिए मेरा एकमात्र आपत्ति यह है कि कार्यालय 2013 के लिए पीआईए अभी भी प्रकाशित है - उदाहरण के लिए, यदि आपके पास वीएस2013 इंस्टॉल है, तो आप उन्हें सी: \ प्रोग्राम फ़ाइलें (x86) \ माइक्रोसॉफ्ट विजुअल स्टूडियो 12.0 \ विज़ुअल स्टूडियो टूल्स ऑफिस \ पिया \ Office15 - Dan Ling
यह इतिहास का सिर्फ एक हिस्सा है। यदि आप उन्हें ildasm.exe के साथ नज़दीकी रूप से देखते हैं, तो आप देखेंगे कि वे .NET 2.0.50727 को लक्षित करते हैं। एम्बेडिंग टाइपिंग के लिए .NET 4. की आवश्यकता होती है। वे केवल वहां हैं क्योंकि VSTO अभी भी .NET संस्करणों को लक्षित करने का समर्थन करता है। उन्हें तैनात करना आपका काम है, ग्राहक मदद नहीं कर सकता है। - Hans Passant
यदि मैं नया संदर्भ (COM से) का उपयोग करता हूं तो यह उस कंप्यूटर पर काम करेगा जिसमें कार्यालय 2007 स्थापित है (मेरा कार्यालय 2016 है) - Dani
बस जवाब पढ़ें, "ध्यान दें कि एक सुविधा गुम हो गई है"। - Hans Passant


Office 365 के साथ वीएस 2015 समुदाय - किसी भी कारण से COM ऑब्जेक्ट से जोड़ें काम नहीं करता है। समाधान जीएसी में जाता है और इंटरऑप असेंबली ढूंढता है, उन्हें एक अस्थायी निर्देशिका में कॉपी करता है, फिर किसी भी डीएलएल की तरह अपनी परियोजना में जोड़ें।


4
2017-09-26 14:58





साथ ही, यदि आप अब तक नहीं जानते हैं, तो विंडोज 8 में .NET Framework के पुराने संस्करण हैं लेकिन वे डिफ़ॉल्ट रूप से स्थापित नहीं हैं। प्रोग्राम सुविधाओं पर जाएं ---> विंडोज़ में विशेषताएं जोड़ें ----> और पहला चेक बॉक्स .NET 3.0 और शायद 2.0 होना चाहिए। नोट, यदि आप WSUS सर्वर पर हैं तो आपको Windows अद्यतन सर्वर से फ़ाइलों को पकड़ने के लिए Windows को बताना होगा। आशा करता हूँ की ये काम करेगा!


1
2017-07-16 14:28





आधिकारिक तौर पर कार्यालय के लिए पीआईए की कोई पिछड़ा संगतता नहीं है। वास्तव में यह काम करता है।

पिछड़े संगतता कारणों से मैं कई वर्षों से Office XP के लिए पीआईए का उपयोग कर रहा हूं और यह Office XP, 2003, 2007 और 2010 (अभी तक 2013 के साथ परीक्षण नहीं किया गया है) और Windows XP, Vista, 7 और 8 के साथ ठीक काम करता है।

विंडोज के विभिन्न संस्करणों के साथ संगतता के लिए मैं .NET Framework 3.5 का उपयोग कर रहा हूं।

भविष्य के लिए ... यह निर्भर करता है कि आप पीआईए के साथ क्या कर रहे हैं। यदि संभव हो तो ओपन एक्सएमएल फाइलों से सीधे निपटने या शब्द / एक्सेल के लिए ऐड-इन बनाने के लिए कहीं बेहतर है।


0
2018-01-09 09:50



ओपनएक्सएमएल एक प्रतिस्थापन नहीं है! दस्तावेज एक शर्म की बात है। नमूना कोड खोजने के लिए असंभव है। (OpenXML में किसी सेल का पृष्ठभूमि रंग प्राप्त करने का प्रयास करें! मज़े करें!) लेकिन मुख्य रूप से ओपनएक्सएमएल समाधान नहीं है क्योंकि सूत्रों में से कोई भी निष्पादित नहीं होता है। इसलिए यदि किसी सेल की सामग्री किसी सूत्र द्वारा भरी जाती है तो आपको पता नहीं चलेगा कि सेल का मूल्य तब तक नहीं है जब तक आप वास्तविक कार्यालय स्वचालन का उपयोग न करें। - Elmue


मुझे अभी पता चला है कि विजुअल स्टूडियो 2013 एक्सप्रेस में अब कार्यालय-समर्थन नहीं है। तो आपको इसे कम करने के लिए कम-से-कम समर्थक संस्करण की आवश्यकता है।


0
2017-08-11 11:54



मैं विजुअल स्टूडियो 2015 सामुदायिक संस्करण का उपयोग कर रहा हूं। इसमें कार्यालय का समर्थन भी नहीं था। हालांकि, वीएस 2015 के लिए इसे डाउनलोड किया जा सकता है aka.ms/officedevtoolsforvs2015 यह आलेख बताता है कि यह यहां है: blogs.msdn.microsoft.com/visualstudio/2016/04/26/... - Aendie