2008-12-31 16 views
5

ऐसा लगता है कि आप जिस Office COM ऑब्जेक्ट संदर्भ के लिए (के रूप में आप अन्य विकास के वातावरण में करना होगा) की कोशिश, विजुअल स्टूडियो गलत हो जाता है - and it just won't workक्या मुझे अपने ग्राहकों को Office Xxxx प्राथमिक इंटरऑप असेंबली स्थापित करने के लिए मजबूर करना है?

तो तुम कि माइक्रोसॉफ्ट हाथ से बदला है और download के लिए उपलब्ध बनाता है, और download, और download परिवर्तित प्रकार लायब्रेरी का उपयोग करना चाहिए।

अब यह क्रम में अपने आवेदन में यह कार्यालय Interop कोड है, जो एक विधानसभा में निहित है की जरूरत को चलाने के लिए है कि लगता है।

अब मैं अपने ग्राहकों को Office 2007 प्राथमिक इंटरऑप असेंबली, Office 2003 प्राथमिक इंटरऑप असेंबली या Office XP प्राथमिक इंटरऑप असेंबली स्थापित करने के लिए मजबूर नहीं करना चाहता हूं। मैं एक xcopy तैनाती चाहता हूँ।

तो मैं इंटरॉप असेंबलियों के माइक्रोसॉफ्ट के प्रति भी नियंत्रण प्राप्त करने के लिए प्रबंधन, मैं सिर्फ उन्हें बिन/डीबग और बिन/रिलीज फ़ोल्डरों द्वारा कॉपी कर सकते हैं?

यदि मैं Office 2007 इंटरऑप असेंबली शामिल करता हूं, तो क्या यह काम करेगा यदि ग्राहक के पास Office 95 स्थापित है, या क्या मुझे Office इंटरऑप डीएल के माइक्रोसॉफ्ट के सभी संस्करणों को कभी भी प्रकाशित करना है?

उत्तर

4

यह एक नहीं बल्कि जटिल जवाब के साथ एक आम सवाल है।

http://blogs.msdn.com/vsto/archive/tags/Deployment/default.aspx

तैनात करने के लिए ClickOnce का उपयोग करना निकटतम आप एक XCopy को VSTO पर बनाया गया किसी भी आवेदन के स्थापित पाने के लिए जा रहे हैं: MSFT की मरियम ली इस बारे में जानकारी के लिए एक महान स्रोत है।

इसके अलावा, इस पोस्ट की जाँच करें:

http://blogs.msdn.com/mshneer/archive/2006/01/05/deployment-articles.aspx

पीआईए ताकि आप लक्षित कर रहे हैं कार्यालय के संस्करण के लिए विशिष्ट हैं,:

http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/1666d2b0-a4d0-41e8-ad86-5eab3542de1e/

अंत में, Misha एक महान ब्लॉग है 2003 पीआईए 2003 को लक्षित करने के लिए आवश्यक हैं और 2007 पीआईए 2007 के लिए जरूरी हैं। प्रबंधित कोड के माध्यम से Office 95 स्वचालित करना कुछ ऐसा है जो मैंने पहले नहीं किया है, लेकिन मैं कल्पना कर सकता हूं कि आप सीधे संदर्भित हैं प्रकार पुस्तकालयों में आई ताकि आपके लिए आरसीडब्ल्यू उत्पन्न हो और पीआईए के साथ कुछ लेना न हो।

HTH

कोल्बी अफ्रीका (MSFT)

0

तो मैं इंटरॉप असेंबलियों के माइक्रोसॉफ्ट के प्रति भी नियंत्रण प्राप्त करने के लिए प्रबंधन, मैं सिर्फ उन्हें बिन/डीबग और बिन/रिलीज फ़ोल्डरों द्वारा कॉपी कर सकते हैं?

यह मेरे लिए काम किया। जब मैंने प्रोग्राम संकलित किया तो मैंने बिन में इंटरऑप (पीआईए) डीएलएस का संदर्भ दिया था और फिर इसे ग्राहक के लिए तैनात किया था।

तो मैं ऑफिस 2007 इंटरॉप विधानसभाओं में शामिल हैं, यह काम करेंगे अगर ग्राहक कार्यालय 95 स्थापित किया है?

नहीं, आप MST आप लक्षित कर रहे पद के संस्करण के लिए इंटरॉप DLLs की है। मुझे लगता है कि यह आपके कोड को लिखना संभव हो सकता है ताकि यह उस मशीन पर चलने वाले शब्द के संस्करण को चकित कर सके और रनटाइम पर सही इंटरऑप चुनता हो, लेकिन आपको उन्हें सभी शामिल करने की आवश्यकता है।

2

मेरे अपने अनुभव से:

आप Office 2003 को लक्ष्य बनाएं और इसके बाद के संस्करण है, तो आप PIAs Office 2003 का उपयोग करना चाहते थे तो - और Office 2003 एपीआई तक सीमित। कोड Office 2003 या बाद में पर चलाया जाएगा। आप अभी भी प्रतिबिंब का उपयोग कर Office 2007 फ़ंक्शंस को कॉल कर सकते हैं, लेकिन यह सुखद नहीं है।

मुझे कल्पना है कि यह आपकी कहानी है यदि आपका बेसलाइन संस्करण Office 2000 है - हालांकि मैंने इसे आजमाया नहीं है, और मुझे लगता है कि माइक्रोसॉफ्ट स्वयं पीआईए प्रदान करने वाला सबसे पुराना संस्करण Office 2002 (XP) है।

आप 2000 के लिए अपनी इंटरऑप असेंबली बना सकते हैं, और मेरे पास यह विश्वास करने का कोई कारण नहीं है कि आप इसे '95 के लिए नहीं कर सकते हैं, हालांकि आप पहले व्यक्ति हैं जिन्हें मैंने कभी देखा है '95 समर्थन ! यह कहने के बिना चला जाता है कि यदि आप अपनी खुद की इंटरऑप असेंबली बनाते हैं तो आपको उन्हें अपने आवेदन के साथ तैनात करने की आवश्यकता होगी।

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

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

XCOPY परिनियोजन? हाँ, मुझे वह भी पसंद है - लेकिन इसे भूल जाओ। एक बात के लिए, यदि आपका ऐड-इन 'उच्च' सुरक्षा मोड में काम करने जा रहा है, तो आपको अपने कोड और कार्यालय के बीच बैठने के लिए कोड-हस्ताक्षरित COM 'shim' की आवश्यकता होगी, और इसे पंजीकृत होने की आवश्यकता है। मेरा मानना ​​है कि वीएसटीओ अपना खुद का शिम प्रदान करता है, अगर आप उस रास्ते को नीचे जाने का विकल्प चुनते हैं (मैंने नहीं किया, क्योंकि मुझे एप्लिकेशन को शुरू करने के लिए उपयोगकर्ता पर भरोसा करने के बजाय कार्यालय को 'ड्राइव' करने में सक्षम होना आवश्यक था)।

परिनियोजन - और स्थापना & सुरक्षा समस्याओं से निपटना - .NET के साथ Office एड-इन विकास के सबसे कठिन हिस्सों में से एक है, और यह एक वास्तविक किकर है कि यह अंत में सही होता है जब आपने सोचा था कि आप किया गया था।

मेरा मजबूत सलाह स्वयं को परेशानियों के दिन और सप्ताह बचाने के लिए है, और Add-in Express पर देखें। मैंने हाल ही में खुद ही इस पर आ गया है, और अब से खुद को लात मार रहा है क्योंकि यह मुझे इतना समय बचा सकता था। ,

  1. यह आप एक ही ऐड-इन Office 2007 के लिए ऑफिस 2000 लक्ष्यीकरण बनाने की अनुमति देता (क्षमा करें, नहीं '95) किस संस्करण का क्या की परवाह किए बिना: यह कई लाभ है कि मैं आप के लिए उपयोगी होगा लगता है अपने विकास पीसी पर है।
  2. यह आपके लिए एक इंस्टॉलर बनाता है (जो Vista पर भी काम करता है!), जो कि कीमत में लायक है।
  3. यह अपने स्वयं के COM शिम के साथ आता है, और इस हद तक एकीकृत है कि आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।
  4. यह आपको एक ऐड-इन रखने की अनुमति देगा जिसमें 2003 तक Office संस्करणों में मेनू/टूलबार इंटरफ़ेस होगा, लेकिन 2007 में एक रिबन इंटरफ़ेस होगा।

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

+0

+1। एक और बिंदु मैं उल्लेख करना चाहता हूं कि आप एक्सेल 2000 से 2003 को लक्षित करने वाले कस्टम कार्य पैन बना सकते हैं। यह सब एक बहुत ही उचित मूल्य के लिए है। एक ओपन सोर्स विकल्प (हालांकि कम फ्रिल्स के साथ) जिसे आप देखना चाहते हैं वह एक्सेल डीएनए है जो भी बहुत अच्छा है। नोट: मैं किसी भी तरह से ऐड-इन एक्सप्रेस या एक्सेलडीएनए प्रोजेक्ट से संबद्ध नहीं हूं (उनमें से दोनों का उपयोग करने के अलावा) – quixver

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

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