2012-06-04 4 views
0

Ceci est mon tout premier projet wix. J'ai téléchargé wix 3.6 rc. Mon projet d'installation comprend 2 projets wcf et 1 projet silverlight. Tout fonctionne bien avec l'interface utilisateur Wix par défaut. Mais maintenant que j'ai besoin d'ajouter la base de données SQL. Il fonctionne très bien avec les valeurs par défaut comme ci-dessous:Interface utilisateur personnalisée Wix pour l'installation de la base de données SQL

    <Component Id='SqlComponent' Guid='8B72C159-1477-4A58-AFAE-E94D756BFFA6'> 
        <CreateFolder/> 
        <sql:SqlDatabase Id='SqlDatabase' Database='master' Server='.' 
         CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes'> 
         <sql:SqlScript Id='CreateTable' BinaryKey='CreateTable' ExecuteOnInstall='yes' /> 
         <sql:SqlScript Id='CreateTable1' BinaryKey='CreateTable1' ExecuteOnInstall='yes' /> 
        </sql:SqlDatabase> 
        </Component> 

Mais je dois présenter une interface utilisateur pour le chemin de la base de données SQL, le nom de la base de données, nom d'utilisateur et mot de passe, si l'utilisateur et mot de passe ne sont pas spécifiés utilisent ensuite l'utilisateur Windows. Pour voir comment ajouter un ui personnalisé, j'ai essayé ce qui suit: mais il affiche immédiatement l'interface utilisateur personnalisée.

Mais je veux qu'il montre spécifiquement pour l'installation de base de données SQL seulement.

<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 
    <Text>Ready to Install</Text> 
</Control> 

<Control Id="Install" Type="PushButton" X="304" Y="243" Width="56" Height="17" 
    Default="yes" Text="Install"> 
    <Publish Event="EndDialog" Value="Return" /> 
</Control> 

Je suppose que, une fois que je reçois pour montrer l'interface utilisateur personnalisée exactement où je veux, ma prochaine exigence va pouvoir obtenir l'entrée de l'utilisateur pour le chemin, le nom, l'utilisateur et le mot de passe de la base de données et transmettre cette information au script. Je ne suis pas sûr de savoir comment faire ça non plus.

Répondre

2

Enfin, je trouve un article oeil ouvre sur Wix ici How to add custom UI

Après une longue lutte pour comprendre comment fonctionne Wix, le lien ci-dessus pour CodeProject m'a aidé à comprendre. Surtout la partie qui explique la création d'interface utilisateur (MyWebUI.wxs dans cet article) a été l'épargnant de vie.

+1

Merci pour le lien. Même si l'article est plutôt obsolète, j'ai pu apprendre beaucoup de choses. Je me suis rendu compte que je ne devrais pas copier le fichier source dans mon ensemble de dialogue personnalisé, mais simplement référencer une boîte de dialogue standard et injecter mes boîtes de dialogue personnalisées en publiant (redéfinissant) les actions sur Next/Back: http://www.codeproject.com/Articles/115036/Création-WIX-Programme d'installation-pour-ASP-NET-Web-Application # h45 – VikVik

3

Lire sur l'extension WiX UI dans le fichier .chm. Choisissez le jeu de dialogue le plus approprié pour votre programme d'installation. Ensuite, vous pouvez le personnaliser en conséquence. Supposons que vous voulez personnaliser le jeu de dialogue WixUI_Advanced:

  • Téléchargez le WiX source code
  • Accédez au code source pour l'extension de l'interface utilisateur située dans src\ext\UIExtension\wixlib.
  • Copiez et renommez le fichier * WixUI_Advanced.wxs * en quelque chose de différent tel que * WixUI_Advanced_Custom.wxs *.
  • Ouvrez le fichier .wxs et veillez à renommer l'ID de l'interface utilisateur en <UI Id="WixUI_Advanced_Custom">.
  • Ajoutez * WixUI_Advanced_Custom.wxs * à votre projet d'installation.

Vous pouvez désormais référencer votre ensemble de boîtes de dialogue personnalisées comme vous le feriez avec les autres ensembles de boîtes de dialogue dans l'extension de l'interface utilisateur. Mais l'interface utilisateur n'est pas tout à fait personnalisée, elle fournit simplement la même fonctionnalité que le jeu de dialogue WixUI_Advanced. Pour ajouter une nouvelle boîte de dialogue, vous devez créer un nouveau fichier .wxs en utilisant la source wix comme exemple. Regardez l'une des boîtes de dialogue src\ext\UIExtension\wixlib pour obtenir de l'aide. Ensuite, référencez votre boîte de dialogue dans * WixUI_Advanced_Custom.wxs * en ajoutant et en modifiant les éléments <Publish> pour déterminer quand votre boîte de dialogue est affichée.

+0

Bonjour! J'ai le même problème, et j'ai trouvé votre solution dans de nombreux didacticiels. Je ne peux tout simplement pas le faire fonctionner. Je télécharge le code source, je trouve le fichier à utiliser, je le copie, je l'ajoute au dossier dans lequel je travaille et j'essaie d'utiliser les outils en ligne de commande pour créer le fichier .msi. J'utilise la lumière.exe avec -ext WixUIExtension et il me donne des erreurs LGHT0091. Qu'est-ce que je fais mal? –

+0

@ AndrasBalázsLajtha Quelles sont les erreurs? – BryanJ

+0

Merci de votre aide. J'ai eu beaucoup d'erreurs comme ci-dessous: LGHT0091: Dupliquer le symbole 'ControlEvent: WelcomeDlg/Suivant/NewDialog/VerifyReadyDlg/installé et PATCH' trouvé. Cela signifie généralement qu'un ID est dupliqué. Vérifiez que tous vos identifiants d'un type donné (Fichier, Composant, Fonction) sont uniques. –

Questions connexes