2012-03-05 10 views
12

नामक खाली है, एक बार फिर मैं एक समस्या पर फंस गया हूं, जो शायद हल करना आसान है।
मैं स्थापित प्रोग्राम की कॉन्फ़िगरेशन फ़ाइल में परिवर्तन करने के लिए, वाईएक्स के साथ बनाया गया एक सेटअप विस्तार करना चाहता हूं। ऐसा करने के लिए मैंने कस्टमएक्शन बनाया है। कॉन्फ़िगरेशन फ़ाइल को बदलने में सक्षम होने के लिए, मुझे अपने कस्टमएक्शन के भीतर (इंस्टॉल-) स्थान पता होना चाहिए। इसलिए मैं अपने CustomAction को installLocation और फ़ाइल नाम गुजर का प्रयास करें। यहां समस्या है: कस्टमएक्शनडाटा -Attribute हमेशा खाली होता है और सेटअप अपवाद फेंकता है।वाईएक्स कस्टमएक्शनडेटा कस्टमएक्शन

मेरे CustomAction एक सी # DLL फ़ाइल है: DemoDatumErzeugen.CA.dll। इसमें एक विधि DatumEintragen है जो कॉन्फ़िगरेशन फ़ाइल को संशोधित करती है। मैं डेटा को इस तरह से एक्सेस करने का प्रयास कर रहा हूं:

string path = session.CustomActionData["LOCATION"]; 

यह वह जगह है जहां अपवाद फेंक दिया जाता है। मुझे केवल जर्मन त्रुटि संदेश मिला, लेकिन यह लाइनों के साथ कुछ कहता है: The supplied key was not found in the dictionary (Der angegebene Schlüssel war nicht im Wörterbuch angegeben.)।

इस तरह मैं अपने कस्टम कार्रवाई करने के लिए अपने सेटअप-स्क्रिप्ट से गुण गुजर का प्रयास करें:

<Binary Id="DemoDatumEinrichtenCA" SourceFile="DemoDatumErzeugen.CA.dll"/> 

<CustomAction Id="DemoDatum.SetProperty" Return="check" Property="DatumEintragen" Value="LOCATION=[INSTALLLOCATION];NAME=StrategieplanConfig.xml;"/> 
<CustomAction Id="DemoDatum" BinaryKey="DemoDatumEinrichtenCA" DllEntry="DatumEintragen" Execute="deferred" Return="check" HideTarget="no"/> 

<InstallExecuteSequence> 
    <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/> 
    <Custom Action="DemoDatum" After="DemoDatum.SetProperty"/> 
</InstallExecuteSequence> 

मैं कई उदाहरण हैं, जहां यह उसी तरह से किया गया था या कम से कम बहुत समान देखा है। मैंने कई चीजों की कोशिश की है लेकिन <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/> में मूल्य बदलने की तरह कुछ भी मदद नहीं करता है। कस्टमएक्शनडेटा हमेशा शून्य होता है। session.CustomActionData.Count
एक बार फिर मैं कोई मदद या संकेत जहां मैंने कुछ गलत किया है के लिए बहुत आभारी हूँ:
मैं के साथ की जाँच करें।

उत्तर

17

PropertyDemoDatum.SetProperty का विशेषता मान स्थगित कार्रवाई के Id विशेषता मान के बराबर होना चाहिए। इसलिए, या तो संपत्ति का नाम DemoDatum पर बदलें, या को स्थगित कार्रवाई के DatumEintragen पर बदलें।

+0

दरअसल! वह यह था। आपका बहुत बहुत धन्यवाद। इसे नजरअंदाज करना आसान है। – Skalli

+0

@Yan स्कलिरेंको मैं अपने .exe की स्थापना के दौरान एक समस्या का सामना करना पड़ रहा bootstraper का उपयोग करके बनाए application.Can आप इस में इतना देखने के लिए और मेरी मदद http://stackoverflow.com/questions/27151665/error-0x80070643-fatal-error कृपया -during-स्थापना-wix – user2725407

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