2009-06-09 17 views
8

मेरे पास एक .NET प्रोजेक्ट है जो क्रिस्टल रिपोर्ट का उपयोग करता है। आवेदन ClickOnce का उपयोग करके वितरित किया जाता है। यदि उपयोगकर्ता क्रिस्टल को अपने कंप्यूटर पर स्थापित करता है तो चीजें बहुत बढ़िया काम करती हैं। हालांकि, अंतिम उपयोगकर्ताओं के पास क्रिस्टल रिपोर्ट्स उनके कंप्यूटर पर स्थापित नहीं हैं। इन उपयोगकर्ताओं को निम्नलिखित त्रुटि मिल रही है ....NET ClickOnce पूर्वापेक्षाएँ फ़ाइलों को स्थापित नहीं कर रहा है?

"एप्लिकेशन इंस्टॉल या चलाने में असमर्थ। एप्लिकेशन को उस असेंबली CrystalDecisions.ReportAppServer.XmlSerialize संस्करण 10.5.3700.0 को ग्लोबल असेंबली कैश (जीएसी) में स्थापित किया जाना चाहिए।"

क्या क्लिकऑन्स इंस्टॉल को मजबूर करने का कोई तरीका है यह सुनिश्चित करने के लिए कि एक शर्त स्थापित है?

+0

क्या आपने अपनी क्लिकऑन प्रकाशित सेटिंग्स में पूर्वापेक्षाएँ के हिस्से के रूप में क्रिस्टल रिपोर्ट्स शामिल की हैं? –

उत्तर

11

नहीं। क्लिकऑन और पूर्वापेक्षाएँ पर बहुत भ्रम है।

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

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

यदि आप अपने एचटीएमएल पेज पर ध्यान देते हैं जो वीएस उत्पन्न करता है, तो आप दो लिंक देख सकते हैं। आपकी। एप्लिकेशन फ़ाइल (क्लिकऑन परिनियोजन) और बूटस्ट्रैपर एक्सई में से एक। आप उपयोगकर्ता की दया पर बहुत अधिक हैं और उन्हें पेज पढ़ने और बूटस्ट्रैपर चलाने की आवश्यकता होने पर भरोसा करना चाहिए। उसमें एक अपवाद है .NET Framework क्योंकि HTML पृष्ठ उपयोगकर्ताAgent स्ट्रिंग के माध्यम से उस के लिए जांच कर सकता है।

यदि वे बूटस्ट्रैपर नहीं चलाते हैं तो उन्हें आपके द्वारा पूछे जाने वाले त्रुटियों की तरह त्रुटियां मिलेंगी।

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

शुभकामनाएं! अगर आप बेहतर समाधान के साथ आते हैं तो कृपया जवाब दें।

+1

व्हाट्नॉट, मैंने आपकी कुछ अन्य पोस्ट पढ़ी हैं और मुझे लगता है कि मुझे बेहतर समझ है। इस विषय की पुष्टि और व्याख्या करने के लिए धन्यवाद। – proudgeekdad

+0

आपका स्वागत है। मुझे ClickOnce के साथ सभी प्रश्नों और निराशाओं से गुज़रना याद है। मुझे आशा है कि मैंने आपको एक _little_ दर्द बचाया :) – codeConcussion

+0

ग्रेट स्पष्टीकरण! –

-1

पूर्वापेक्षाएँ में, नेट फ्रेमवर्क (विजुअल स्टूडियो के लिए क्रिस्टल रिपोर्ट नहीं) के लिए क्रिस्टल रिपोर्ट का चयन करें और प्रकाशित करें।

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