xul.dll को GeckoFX ब्राउज़र नियंत्रण का उपयोग करते समय त्रुटि नहीं मिली - सी #, wix, xulrunner, geckofx

मैं विंडोज फॉर्म एप्लिकेशन में फ़ायरफ़ॉक्स वेब ब्राउज़र नियंत्रण रखने के लिए "GeckoFx-29.0-0.6" का उपयोग कर रहा हूं।

जब मैं अपना विंडोज फॉर्म एप्लिकेशन चलाता हूं जिसमें GeckoFX ब्राउज़र नियंत्रण होता है तो सब कुछ ठीक काम कर रहा है।

मैं अपने आवेदन में निम्नलिखित कोड का उपयोग करता हूं,

Gecko.Xpcom.Initialize("xulrunner/");

और मैं xulrunner फ़ोल्डर के साथ बिन फ़ोल्डर को लोड करने के लिए xcopy का उपयोग करता हूं। तो इस परिदृश्य में xul धावक को उसी लचीलेपन से लोड किया जाता है जहां एप्लिकेशन .exe पाया जाता है।

जब मैं अपने आवेदन का विक्स सेटअप करता हूं, तो मैं हूंएक ही प्रक्रिया कर रहे हैं, मेरे पास xulrunner फ़ोल्डर उसी स्थान पर एप्लिकेशन .exe है। लेकिन एप्लिकेशन विंडोज़ फॉर्म का आह्वान करने में सक्षम नहीं है। यह संदेश "डीएलएल लोड करने में असमर्थ" xul "" दिखा रहा है।

मैंने अपने सेटअप को बदलकर इस मुद्दे को हल कियाकि xulrunner फ़ोल्डर को c: / windows / system32 फ़ोल्डर स्थान पर कॉपी किया गया है। जब मैं ऐसा करता हूं, तो एप्लिकेशन कुछ मशीनों में सफलतापूर्वक काम करता है लेकिन किसी और में काम नहीं करता है।

क्या इसका समाधान करने का कोई तरीका है? जैसे कि मुझे system32 फ़ोल्डर में xulrunner डालने की आवश्यकता नहीं है?

उत्तर:

जवाब के लिए 2 № 1

आप xulrunner निर्देशिका को पूरा पथ देने का प्रयास कर सकते हैं। कुछ ऐसा करें:

var programDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
Gecko.XpCom.Initialize(Path.Combine(programDirectory, "xulrunner");

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

कई स्थितियों के तहत फ़ाइलों को समझदारी से खोजने के लिए हमारी कक्षा, FileLocator, खुला स्रोत है, आप इसे पकड़ सकते हैं और इसका उपयोग कर सकते हैं।


उत्तर № 2 के लिए 1

मैंने इस मुद्दे को ठीक करने का प्रयास करने में बहुत समय बर्बाद कर दिया है और पाया है कि त्रुटि geckofx और xulrunner संस्करण के मेल के कारण थी। वे दोनों एक जैसा होना चाहिए। अधिक समझने के लिए इस लिंक को चेकआउट करें https://bitbucket.org/geckofx/geckofx/wiki/Version_lists


जवाब के लिए 0 № 3

यह भी काम करता है

Gecko.Xpcom.Initialize(Environment.CurrentDirectory + "\xulrunner");

संबंधित सवाल
सबसे लोकप्रिय