2013-07-01 2 views
1

Puis-je arrêter l'installation si une erreur s'affiche dans CustomAction. Comme je peux capable d'afficher le message d'erreur à l'intérieur de l'action personnalisée et il affiche le message d'erreur, mais dès que je clique sur le bouton ok mon prochain formulaire de séquence d'interface utilisateur apparaît. Comment puis-je forcer l'utilisateur à terminer le bouton?Arrêtez l'erreur d'installation dans l'action personnalisée avec le programme d'installation WIX

Ajout mon code source:

<Binary Id="BIN_CustomAction" SourceFile="CustomAction.CA.dll" /> 
     <CustomAction Id="CA_CheckList" BinaryKey="BIN_CustomAction" DllEntry="CA_CheckList" Execute="immediate" Impersonate="yes" Return="ignore" /> 

     <UI Id="MyWixUI_Mondo"> 
      <UIRef Id="WixUI_Mondo" /> 
      <UIRef Id="WixUI_ErrorProgressText" /> 
      <DialogRef Id="UserRegistrationDlg" /> 
      <Dialog Id="UserRegistrationDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> 

       <Control Id="ComboBoxMain" Type="ComboBox" X="124" Y="158" Width="241" Height="16" Property="LOCATIONNAME"> 
       </Control> 
       <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> 
        <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> 
       </Control> 


       <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next"> 
        <Publish Event="SpawnDialog" Value="SetupTypeDlg">1</Publish> 
       </Control> 
       <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> 
        <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> 
       </Control> 

      </Dialog> 

      <Control Id="Next" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;NExt"> 
       <Publish Event="DoAction" Value="RadioButtonCheck">1</Publish> 
      </Control> 
      </Dialog>--> 
      <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="UserRegistrationDlg" Order="3"> 
     LicenseAccepted = "1" 
     </Publish> 
      <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="UserRegistrationDlg">1</Publish> 
     </UI> 
     <InstallUISequence> 
      <Custom Action="CA_CheckList" Before="AppSearch">Not Installed</Custom> 
     </InstallUISequence> 

     [CustomAction] 
     public static ActionResult CA_CheckList(Session session) 
     { 


      if (installer.ListStatus == false) 
      { 

       // dispaly 
       Record record = new Record(); 
       record.FormatString = string.Format("Error!"); 

       session.Message(
        InstallMessage.Error | (InstallMessage)(MessageIcon.Error) | 
        (InstallMessage)MessageButtons.OK,record); 

       return ActionResult.Failure; 

      } 
      else 
      { 
       return ActionResult.Success; 
      } 



     } 

Ajouter capture d'écran prouvant également une fois que je clique sur le bouton OK de l'image (1) ma boîte de dialogue suivante-à-dire l'image (2) apparaît: - au lieu de ce que j'ai besoin est Terminer la boîte de dialogue lorsque j'obtiens l'erreur.

1) Error Message appears

2) Next Dialog

Any idea??kindly help me. 

Répondre

2

Il est tout à retourner le bon "code d'erreur" de l'action personnalisée. Si vous souhaitez terminer l'installation, renvoyez ActionResult.Failure à partir de votre autorité de certification. Remarque: l'affichage de l'interface utilisateur à l'intérieur de l'action personnalisée est généralement une mauvaise idée - ce scénario ne prend pas en charge l'installation silencieuse comme il se doit.

+0

lorsque j'ai essayé avec ActionResult.Failure il affiche toujours le bouton suivant au lieu du bouton Terminer. Quelle pourrait être la solution possible pour cela? – reapen

+0

Y at-il quelque chose que je dois faire à l'intérieur de l'interface d'installation si ActionResult est Failure actuellement c'est ce que je fais à l'intérieur de Non installé reapen

+0

Je ne sais pas comprendre votre question. Lorsque vous renvoyez 'ActionResult.Failure' de l'action personnalisée, il annule généralement l'installation. En fonction de l'interface utilisateur que vous utilisez, il affichera ou ne affichera PAS la boîte de dialogue finale "Échec de la configuration". AFAIK, le schéma de l'interface utilisateur complète contient toutes les boîtes de dialogue nécessaires pour votre scénario. –

3

Ceci est un ancien article mais j'aimerais répondre à la question au cas où quelqu'un d'autre le trouverait. Dans la définition d'action personnalisée, CustomAction Id = "CA_CheckList" BinaryKey = "BIN_CustomAction" ..., "Return" est défini sur "ignore". Il devrait être réglé sur 'vérifier'.

Questions connexes