2011-03-10 3 views
30

मैं सी # नेट विंडोज डेस्कटॉप एप्लिकेशन का उपयोग कर रहा हूं। मैं इन एप्लिकेशन को अन्य प्लेटफार्म के साथ भी चलाने के लिए चाहता हूं। तो, मैं एक क्रॉस कंपाइलर के रूप में मोनो 2.10 का उपयोग कर रहा हूं। चलते समय, अप्रत्याशित रूप से मेरा संदेशMono2.10 पर DocumentFormat.OpenXml.dll का संदर्भ कैसे शामिल करें?

त्रुटि: चयनित फ़ोल्डर को नहीं खोल सका।
कोई फ़ाइल या असेंबली 'DocumentFormat.OpenXml.dll, संस्करण = 2.0.5022.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी निर्भरताओं को लोड नहीं किया जा सका।

मुझे नहीं पता कि यहां क्या समस्या है ... मैंने c: \ program files \ open xml sdk \ v2 \ lib \ DocumentFormat.OpenXml.dll पर openxml sdk2.0 स्थापित किया है।

और भी परीक्षण के लिए एक ही जगह पर पर अपने आवेदन exe डाल ...

कृपया मार्गदर्शन मुझे इस मुद्दे को हल करने के ...

उत्तर

20

तुम भी आप WindowsBase के लिए एक संदर्भ सेट सुनिश्चित करना चाहिए। यह एसडीके का उपयोग करने की आवश्यकता है क्योंकि यह System.IO.Packaging (जिसे ओपीसी दस्तावेज़ के रूप में संपीड़ित .docx/.xlsx/.pptx को अनजिप करने और खोलने के लिए उपयोग किया जाता है) का उपयोग करने के लिए उपयोग किया जाता है।

+1

मुझे अभी भी एक ही त्रुटि संदेश मिल रहा है ... – Saravanan

+1

मैंने प्रोजेक्ट एक्सप्लोरर विंडो के माध्यम से C# .Net (4.0) में WindowsBase का संदर्भ सेट किया है। लेकिन जब तक मैं उस मुद्दे को हल करने में सक्षम नहीं हूं ... मैं आगे क्या करता हूं? – Saravanan

+1

यदि आपके पास समाधान के भीतर एक से अधिक परियोजनाएं हैं तो दूसरों को भी शामिल करने का प्रयास करें। हो सकता है कि आप गलत एक – merdan

0

आपको अपने आवेदन के समान फ़ोल्डर में DocumentFormat.OpenXML.dll होना चाहिए - या 'बिन' पथ में यदि आप एएसपी.NET अनुप्रयोग विकसित कर रहे हैं। हालांकि, मुझे यकीन नहीं है कि ओपनएक्सएमएल एसडीके गैर-विंडोज ऑपरेटिंग सिस्टम पर समर्थित है - आपको किसी तृतीय-पक्ष समाधान को देखने की आवश्यकता हो सकती है।

हां, यह उत्तर सही है, केवल अंतर यह है कि आप अपने .dll को प्रोजेक्ट के बिन फ़ोल्डर में कॉपी करते हैं।

6

संदर्भ के तहत DocumentFormat.OpenXml का चयन करें, इसकी गुण देखें, और प्रतिलिपि स्थानीय विकल्प को सही पर सेट करें ताकि यह इसे आउटपुट फ़ोल्डर में कॉपी कर सके। यह मेरे लिए काम किया।

0

ठीक है, मेरे अनुप्रयोगों में मुझे केवल .NET टैब के अंतर्गत "DocumentFormat.OpenXml" का संदर्भ जोड़ने की आवश्यकता है और दोनों संदर्भ (DocumentFormat.OpenXml और WindowsBase) हमेशा स्वचालित रूप से जोड़े जाते हैं। लेकिन वे बिन फ़ोल्डर में शामिल नहीं हैं। तो जब अनुप्रयोग किसी बाहरी सर्वर पर प्रकाशित होता है तो मैं हमेशा Bin फ़ोल्डर के अंतर्गत DocumentFormat.OpenXml.dll को मैन्युअल रूप से रखता हूं। या संदर्भ "स्थानीय स्थानीय कॉपी करें" संपत्ति को सही पर सेट करें।

15

अपने आप को इस के लिए नए होने के नाते, यहाँ मैं क्या किया है:

मैं एमएस दृश्य स्टूडियो 2010 प्रो उपयोग कर रहा हूँ।

  1. डाउनलोड करें और दृश्य स्टूडियो में अपने प्रोजेक्ट के भीतर OpenXML SDK
  2. स्थापित करते हैं, "परियोजना" तो "संदर्भ जोड़ें"
  3. "ब्राउज़ करें" टैब
  4. चयन में "में देखो:" नीचे खींच, नेविगेट करने के लिए: C: \ Program Files (x86) \ ओपन एक्सएमएल एसडीके \ V2.0 \ lib और "DocumentFormat.OpenXml.dll
  5. ठीक दबाएं
  6. में" का चयन करें समाधान एक्सप्लोरर "(पर मेरे लिए सही), "संदर्भ" फ़ोल्डर अब डोकू दिखाता है mentFormat.OpenXML लाइब्रेरी।
  7. उस पर राइट-क्लिक करें और गुण
  8. गुण पैनल में, "स्थानीय कॉपी करें" को "True" में बदलें।

आपको दस्तावेज़फॉर्मैट कक्षाओं का उपयोग करके अब बंद होना चाहिए और चलाना चाहिए।

0

गुणों को देखने और बदलने के बाद DocumentFormat.OpenXml में, मुझे भी विशिष्ट संस्करण को गलत में बदलना पड़ा।

2

क्या मेरे लिए काम किया:

  1. परियोजना के लिए एक फ़ोल्डर जोड़ें यह ThirdParty कहते हैं।
  2. ThirdParty फ़ोल्डर में जोड़े दोनों DocumentFormat.OpenXML.dll और WindowsBase.dll
  3. यकीन है कि परियोजना ThirdParty दोनों DLLs
  4. बिल्ड के लिए संदर्भ के रूप में dir और एक बाहरी सर्वर पर प्रकाशित उपयोग करता है।
6

गोटो नुजेट पैकेज मैनेजर और ओपनएक्सएमएल के लिए खोजें। और DocumentFormat.OpenXml

+0

यह मेरे लिए काम करता है – donstack

0

मैंने पाया कि पीसीएल पुस्तकालयों के साथ मिश्रित होने पर उपर्युक्त समस्या स्वयं प्रस्तुत की जाती है, और जब यह सच है कि WindowsBase लाइब्रेरी में System.IO.Packaging है I OpenXMLSDK-MOT 2.6.0.0 लाइब्रेरी का उपयोग कर रहा था जो स्वयं भौतिक सिस्टम की अपनी प्रतिलिपि प्रदान करता है। आईओ पैकेजिंग लाइब्रेरी। संदर्भ कि मेरे लिए याद आ रही थी कोई तिथि नहीं परियोजना

<Reference Include="System.IO.Packaging, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> 
    <HintPath>..\..\..\..\packages\OpenXMLSDK-MOT.2.6.0.0\lib\System.IO.Packaging.dll</HintPath> 
    <Private>True</Private> 
</Reference> 

मैं 2.6 XMLSDK की मेरी संस्करण डाउनग्रेड जो तब मेरे लिए इस समस्या को ठीक करने के लिए ऊपर लग रहा था में इस प्रकार पाया जा सकता है। लेकिन आप देख सकते हैं कि एक भौतिक असेंबली System.IO.Packaging.dll

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