Wix custom UI pentru instalarea bazei de date SQL

Acesta este primul meu proiect wix. Am descarcat wix 3.6 rc. Proiectul meu de instalare include 2 proiecte wcf și 1 silverlight. Totul funcționează bine cu interfața standard Wix. Dar acum că trebuie să adaug o bază de date sql la ea. Funcționează bine cu valorile implicite, cum ar fi cele de mai jos:

                  
                    
                    
                      
                      
                    
                  

Dar trebuie să prezint o interfață de utilizator pentru calea bazei de date sql, numele bazei de date, numele de utilizator și parola, în cazul în care utilizatorul și parola nu sunt specificate apoi utilizați Windows user.

Doar pentru a vedea cum să adăugați un personalizat ui Am încercat următoarele: dar afișează ui personalizat imediat. Dar vreau să se afișeze specific pentru instalarea bazei de date SQL numai.


  Ready to Install



  

Cred că, odată ce am reușit să afișez interfața personalizată exact unde vreau, următoarea mea cerință va fi aceea de a putea obține intrarea utilizatorului pentru calea bazei de date, numele, utilizatorul și parola și să transmită aceste informații scriptului. Nici eu nu știu cum să fac asta.

0

2 răspunsuri

Citiți extensia UI WiX în .chm. Alegeți setul de dialog care este cel mai potrivit pentru programul dvs. de instalare. Apoi îl puteți personaliza în consecință. Să presupunem că doriți să personalizați setul de dialog WixUI_Advanced:

  • Download the WiX source code
  • Navigate to the source code for the UI extension located in src\ext\UIExtension\wixlib.
  • Copy and rename the file *WixUI_Advanced.wxs* to something different such as *WixUI_Advanced_Custom.wxs*.
  • Open the .wxs file and be sure to rename the UI Id to .
  • Add *WixUI_Advanced_Custom.wxs* to your setup project.

Now you can reference your custom dialog set just like you would reference the other dialog sets in the UI extension. But the UI is not quite customized, it just provides the same functionality as the WixUI_Advanced dialog set. To add a new dialog, you need to create a new .wxs using the wix source as an example. Look at any of the dialogs in src\ext\UIExtension\wixlib for help. Then reference your dialog in *WixUI_Advanced_Custom.wxs* by adding and modifying the elements to determine when your dialog is shown.

0
adăugat
@ AndrasBalázsLajtha Care sunt erorile?
adăugat autor BryanJ, sursa
Dacă ați copiat doar fișierul, trebuie să schimbați Id-ul. De obicei, luați un fișier care conduce un întreg set de dialog WiXUI și redenumiți numai acel fișier (inclusiv ID-ul). Apoi, dacă trebuie să adăugați un fișier, puteți copia și redenumi un fișier existent ca exemplu (nu uitați să redenumiți id-ul). Nu trebuie să mergeți și să redenumiți fiecare fișier din set deoarece fișierul dvs. principal .wxs (pe care l-ați redenumit) va face referire la toate dialogurile standard. Sper că ți-am explicat bine.
adăugat autor BryanJ, sursa
@VikVik, nu copiați toate fișierele .wxs din interfața WiX, doar cea principală care conține fluxul interfeței utile. Consultați manualul WiX: wix.sourceforge.net/manual-wix3/WixUI_customizations.htm
adăugat autor BryanJ, sursa
Bună! Am aceeași problemă și am găsit soluția în mai multe tutorialuri. Nu pot să mă descurc. Am descărcat codul sursă, găsesc fișierul de utilizat, fac o copie a acestuia, îl adaug în dosarul în care lucrez și apoi încerc să folosesc instrumentele din linia de comandă pentru a face fișierul .msi. Eu folosesc light.exe cu -ext WixUIExtension și îmi dă erori LGHT0091. ce fac greșit?
adăugat autor Andras Balázs Lajtha, sursa
Mulțumesc pentru ajutor. Am mai multe erori ca mai jos: LGHT0091: Simbol duplicat 'ControlEvent: WelcomeDlg/Next/NewDialog/VerifyReadyDlg/Insta & zwnj; lled AND PATCH' găsit. Aceasta înseamnă de obicei că un Id este duplicat. Verificați pentru a vă asigura că toți identificatorii dintr-un anumit tip (Fișier, Component, Caracteristică) sunt unici.
adăugat autor Andras Balázs Lajtha, sursa
Mulțumesc, asta am crezut și eu. Ceea ce am făcut a fost să iau elementul și să schimb id-ul: . Dar acest lucru nu a ajutat, în acest moment am primit toate erorile plângând despre componentele menționate care au redundante ID-uri, deși nu am copiat aceste articole.
adăugat autor Andras Balázs Lajtha, sursa
Și această soluție nu funcționează pentru mine. Doar copierea + redenumirea fișierului standard WixUI_ * și redenumirea unui singur ID oferă o grămadă de erori "LGHT0091: Duplicate symbol ...". Probabil această metodă nu este potrivită pentru utilizarea în VS2010 unde am o referință la WixUIExtension.dll. Înlăturarea referinței elimină toate dialogurile standard care sunt utilizate în fișierul WixUI_ *. Deci, aceasta nu este o problemă de personalizare a dialogurilor standard, ci de personalizare a dialogurilor standard utilizând proiectul Visual Studio.
adăugat autor VikVik, sursa
@BryanJ Sigur că copiez un singur fișier, îl redenumesc și schimb ID-ul. După aceasta am 22 erori ca acesta: \ WixUI_MinimalCustom.wxs (56,0): eroare LGHT0091: simbol duplicat 'ControlEvent: WelcomeDlg/Next/NewDialog/VerifyReadyDlg/Insta & zwnj; lled AND PATCH' găsit. Aceasta înseamnă de obicei că un Id este duplicat. Verificați pentru a vă asigura că toți identificatorii dintr-un anumit tip (Fișier, Component, Caracteristică) sunt unici. \ wixlib \ WixUI_Minimal.wxs (56,0): eroare LGHT0092: Amplasarea simbolului în legătură cu eroarea anterioară.
adăugat autor VikVik, sursa

Finally I found an eye opener article on wix here How to add custom UI

După o lungă luptă pentru a înțelege cum funcționează wix, legătura de mai sus cu codeproject ma ajutat să înțeleg. Mai ales partea care explică crearea UI (MyWebUI.wxs în acel articol) a fost economistul de viață.

0
adăugat
Vă mulțumim pentru link. Chiar dacă articolul este destul de depășit, am reușit să învăț foarte mult. Mi-am dat seama că nu ar trebui să copiez fișierul sursă în setul de dialog personalizat, ci doar să fac referire la un dialog standard și să-mi injectez dialogurile personalizate prin publicarea acțiunilor de pe Next/Back: codeproject.com/Articles/115036/…
adăugat autor VikVik, sursa