Aspecte generale
Ce este WiX?
Windows Installer XML (WiX) este un set de instrumente open source care vă permit să compilați pachetele Windows Installer din descrieri XML.
Wix - primul produs la Microsoft, care a fost dezvoltat pe site-ul SourceForge și distribuit sub o licență open source CPL (celelalte doua au fost mai târziu pentru Windows Template Library și FlexWiki).
WiX include o serie de utilitare pentru console:
- preprocesor / compilator de lumânări
- lumina - linker
- lit - gestionarea bibliotecii
- întuneric - decompilator
- loialitate - utilitate pentru generarea de coduri auto
Unde altcineva pot găsi informații despre WiX?
De ce nu în loc să folosești WiX ...?
Unde pot descărca ultima versiune de WiX?
Comunicatele WiX sunt disponibile pe SourceForge: WiX 2.0 + Votive2. WiX 3.0 + Votive 3. În plus, dezvoltatorii de WiX aderă la practica lansărilor săptămânale.
Pot participa la dezvoltare?
DA! Trebuie doar să semnați un acord. după care puteți face îmbunătățiri și puteți trimite corecții la [email protected].
Cum se instalează WiX?
Mai întâi, instalați .NET Framework 1.1 și SP1 pentru aceasta. Instrumentele WiX funcționează sub .NET și fără SP1 este posibil să întâlniți erori aleatorii atunci când analizați fișiere XML mari. .NET Framework este necesar doar pentru funcționarea utilităților WiX; Un pachet de instalare gata nu necesită prezența .NET pe mașina țintă.
La instalare, WiX nu necesită setări speciale - este suficient să implementați .zip-archive în orice folder.
Pentru ca IntelliSense să funcționeze la editarea fișierelor .wix în Visual Studio, trebuie să plasați schemele WiX XML (wix.xsd, wixloc.xsd) în dosarul corespunzător:
Cum să lucrați cu proiectul WiX direct în Visual Studio?
Pentru asta a fost proiectat Votive.
Votive este o extensie (add-in) pentru Visual Studio. Vă permite să creați "proiecte WiX", care pot fi incluse în soluție și care acționează exact ca orice alte tipuri de proiecte. Toate instrumentele WiX sunt incluse în Votive, deci nu este nevoie să instalați separat WiX - este posibil să aveți nevoie doar de instalarea automată a programului de instalare.
Există o modalitate ușoară de a desena interfata (UI) de instalare?
Există o serie de proiecte care oferă editarea WYSIWYG a ecranelor de instalare:
Cum obțin un nou GUID?
Valorile GUID sunt utilizate de WiX ca identificatori pentru diferite obiecte, cum ar fi un produs sau o componentă, iar WiX presupune că alegeți valorile pe care le doriți și le specificați în fișierul XML. Pentru a genera valorile pe care le puteți utiliza pentru utilități, cum ar fi uuidgen sau guidgen (de la VS - Instrumente de comandă | Creare GUID), dar asigurați-vă că pentru a utiliza caractere majuscule, iar valoarea nu este cuprins intre paranteze.
Când lucrați în Visual Studio, puteți utiliza o macrocomandă simplă. la care puteți atribui o combinație de taste sau utilizați GUIDGen.NET.
Cum pot schimba pictograma produsului care este vizibilă în lista Adăugare sau eliminare programe?
Specificați identificatorul pentru pictograma dorită din proprietatea ARPPRODUCTICON. De exemplu:
Cum se adaugă automat toate fișierele din folderul specificat la programul de instalare?
În teorie, nu există o astfel de posibilitate.
utilitate seu vă permite să scanați directorul și de a genera componente pentru toate fișierele găsite, dar codul sursă rezultat este doar pentru a fi utilizat ca varianta inițială pentru manualul de reglaj fin, dar nu ca o intrare pentru un proces de acumulare automatizat - tot ceea ce este potrivit pentru asamblarea automată se transmise lumânare, dar nu în seu.
Există un instrument pentru mlaștină. permițându-vă să adune în mod automat fișierele din directorul și subdirectoarele, și generarea de asemenea, componente și tag-uri Director, care vă permite să conectați fișierul rezultat astfel încât întregul directoarele și fișierele subarborelui vor fi incluse în pachetul de instalare și instalat ca același Subarborele în dosarul specificat.
Cum se înregistrează COM DLL?
Metoda recomandată este colectarea tuturor informațiilor de înregistrare și includerea în componenta (eticheta Component) pentru acest DLL ca etichete TypeLib, Class, Interface, ProgID etc. și, în ultimă instanță, eticheta de registru. Ca material inițial, puteți utiliza rezultatul sei de utilitate (fie seif îmbunătățit, fie wixtlib pentru bibliotecile de tip). De exemplu:
Dacă DLL-ul necesită o auto-înregistrare, specificați atributul SelfRegCost în eticheta Fișier:
Dar rețineți că utilizarea auto-înregistrării este extrem de dezaprobată. deoarece subminează capacitatea Windows Installer de a gestiona instalarea informațiilor de înregistrare.
Cum se instalează .NET-assembly în GAC?
Setați eticheta Fișier pentru atributele Assembly and AssemblyManifest, dar nu specificați atributul AssemblyApplication. De exemplu:
Acest ansamblu nu va fi instalat decât în faza de "comitere", deci nu va fi posibil să îl utilizați în acțiuni personalizate.
Dacă vă răzgândiți și decideți să nu includeți ansamblul în GAC, setați atributul AssemblyApplication la aceeași valoare ca atributul AssemblyManifest.
Cum de a verifica dacă componentele sistemului necesare sunt instalate (premise)?
Ideea de bază este de a verifica proprietatea, care este setată diferit în funcție de disponibilitatea componentei și a versiunii acesteia. Puteți crea o condiție pentru pornirea instalării prin plasarea etichetei Condition în Produs, de exemplu:
Pentru a verifica versiunea sistemului de operare, puteți utiliza proprietăți predefinite, cum ar fi VersionNT sau Version9X, pentru a testa versiunea .NET Framework - MsiNetAssemblySupport.
Pentru a căuta o componentă instalată din MSI, puteți utiliza căutarea GUID pentru eticheta ComponentSearch. Pentru o componentă Windows, cum ar fi IIS, este posibil să fie necesar să căutați în registry, de exemplu:
Înainte de a instala pachetul .MSI, trebuie să îl instalați automat. <системный компонент …>. Cum se face acest lucru?
. Problema instalării și actualizare a componentelor sistemului (cerințe), cum ar fi .NET Framework, MDAC, MSDE, etc este rezolvată folosind-bootstrapper programul, a cărui misiune - să stabilească și să actualizeze toate componentele necesare, și apoi începe să efectueze .msi-pachet.
Există mai multe astfel de programe:
Când trebuie să schimb codul de produs, codul pachetului etc.?
Există trei GUID-uri importante care vă definesc pachetul de instalare și care sunt deosebit de importante pentru actualizările produsului:
- Codul pachetului (Cod pachet) ar trebui să fie de obicei pentru fiecare fișier .msi
- Codul produsului identifică un grup de pachete din care numai unul poate fi instalat la un moment dat. De exemplu, două pachete pot avea același cod de produs dacă sunt localizări în diferite limbi. Dacă doriți să permiteți utilizatorilor să actualizeze de la o versiune la alta fără a dezinstala în mod necesar (upgrade-ul așa-numitele majore), atunci fiecare ar trebui să aibă propria sa versiune a codului de produs, astfel încât este de obicei noua versiune cu un nou număr de versiune este baza pentru modificări în codul produsului.
- Codul de upgrade identifică un grup de pachete, toate acestea putând fi actualizate la un singur produs nou. În mod normal, actualizarea codului este aceeași pentru toate versiunile care nu pot fi instalate simultan (side-by-side), permițând astfel versiuni mai vechi pentru a determina dacă mai noi și refuză să instaleze în același timp, precum și versiuni noi pentru a determina dacă mai în vârstă și în mod automat actualizați-le.
Cum pot extinde funcționalitatea WiX?
localizare
Cum să obțineți pachetul MSI în limba rusă?
Sub îndrumarea lui Gabor DEAK JAHN, există așa-numitul. Proiect de localizare WiX. combinând eforturile de scriere a fișierelor de localizare (fișiere .wxl) pentru toate limbile majore. Distribuția include cele mai recente versiuni ale Wix 4 fișier de limbă (pentru en-US, de-DE, ES-ES și NL-NL), în timp ce alte 9 fișiere de limbă (inclusiv ru-RU) sunt înregistrate în lista completă.
Pentru o bază de localizare este luat fișier WixUI_en-us.wxl, majoritatea mesajelor se referă la Windows Installer, o traducere se bazează pe fișier Intl.zip de la MSI SDK. Restul mesajelor sunt traduse direct din fișierul în limba engleză.
Fișierul de localizare "neoficial" WixUI_ru-en.wxl poate fi luat aici.
Numele produsului rusesc este afișat ca.
Mai întâi, verificați dacă codarea fișierului se potrivește cu codificarea declarată la începutul acestui fișier, de exemplu: