2011-12-21 11 views
10

मैं शुरुआत करने वाला हूं, वाईएक्स सीखना शुरू कर दिया। मैं स्थापना प्रक्रिया के दौरान उपयोगकर्ता विवरण को कैप्चर और मान्य और पंजीकृत करना चाहता हूं। उपयोगकर्ता ने 'अगला' पर क्लिक करने के बाद मैंने उपयोगकर्ता पंजीकरण को कैप्चर करने और कस्टम कार्रवाई का आह्वान करने के लिए एक संवाद बनाया है।वाईएक्स स्थापित त्रुटि 2762 संवाद से कस्टमएक्शन का आह्वान करते समय

लेकिन यहां मुझे इंस्टॉलर त्रुटि 2762 मिल रही है। हालांकि त्रुटि वर्णन कहता है कि "कार्रवाई को इंस्टॉल करना और इंस्टॉल करना चाहते हैं", मैं इस समस्या को हल करने का तरीका समझने में सक्षम नहीं हूं।

<Binary Id="mycustom" 
     SourceFile="..\CustomAction1\bin\Debug\CustomAction1.CA.dll" /> 

<CustomAction Id="myCustomValidate" 
       BinaryKey="mycustom" 
       DllEntry="ValidateCustomAction" 
       Execute="deferred" 
       Return="check"> 
</CustomAction> 

<UI> 
    <UIRef Id="WixUI_Mondo" /> 
    <Dialog Id="UserRegistrationDlg" 
      Width="370" 
      Height="270" 
      Title="[ProductName] [Setup]" 
      NoMinimize="yes"> 
     .. 
     .. 
     .. 
     <Control Id="Next" 
       Type="PushButton" 
       X="236" 
       Y="243" 
       Width="56" 
       Height="17" 
       Default="yes" 
       Text="[ButtonText_Next]"> 
      <Publish Event="ValidateProductID" Value="0">1</Publish> 
      <Publish Event="DoAction" Value="myCustomValidate">1</Publish> 
      <Publish Event="SpawnDialog" Value="InvalidRegDlg">PIDACCEPTED = "0"</Publish> 
      <Publish Event="NewDialog" Value="SetupTypeDlg">ProductID AND PIDACCEPTED = "1"</Publish> 
     </Control> 
    </Dialog> 
</UI> 

के बाद कस्टम क्रिया कोड मैं प्रयोग किया जाता है:

यहाँ मेरी एक्सएमएल स्क्रिप्ट है।

[CustomAction] 
public static ActionResult ValidateCustomAction(Session session) 
{ 
    return ActionResult.Success; 
} 

"InstallExecuteSequence" में उपयोग किए जाने पर कस्टम कार्रवाई ठीक काम कर रही है। मैं समस्या को समझने में सक्षम नहीं हूं, मैंने कस्टम संवाद हटा दिया और कस्टम कार्रवाई का आह्वान करने के लिए निम्नलिखित सरल कॉल का उपयोग किया। लेकिन मैं एक ही त्रुटि के साथ समाप्त हो गया।

<Publish Dialog="LicenseAgreementDlg" 
     Control="Next" 
     Event="DoAction" 
     Value="myCustomValidate">1</Publish> 

मुझे यकीन है कि मैं यहाँ कुछ मूर्खतापूर्ण कर रहा हूं, लेकिन पता नहीं लगा सका। उपाय क्या है?

उत्तर

20

अपने CustomAction तत्व में immediate करने के लिए सेट निष्पादित विशेषता। Deferred actions केवल InstallExecuteSequence में InstallInitialize और InstallFinalize क्रियाओं के बीच चलाया जा सकता है।

+0

आकर्षण की तरह काम किया। धन्यवाद!!! – user961330

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