Käyttäjän työkalut

Sivuston työkalut


ohjeet:wix

====== MSI-paketin tekeminen Windows Installer XML (WiX) toolset-ohjelmistolla ====== Tällä sivulla annetaan perusohjeet .msi-paketin tekemiseen. ===== Tarvittavien ohjelmien asennus ja asetukset ===== Lataa ja asenna [[http://wix.sourceforge.net/|WiX]] ja [[http://wixedit.sourceforge.net/|Wix Edit]]. Lisää WiX:n binäärikansio (C:\Program Files (x86)\Windows Installer XML v3.5\bin) Windowsin profiilin polkuun ja WixEditin asetuksiin: {{:ohjeet:wixsettings.png|}} ===== Tiedostot ===== Luo kansio Files ja siirrä ohjelman Program Files-kansioon tulevat tiedostot sen alle hakemistorakenteineen. Aja komentorivillä seuraava käsky: ''heat dir Files -cg fileComponents -gg -ke -sfrag -template fragment -sreg -out fragment-files.wxs'' . Tämä luo fragment-files.wxs-tiedoston, joka sisältää ohjelman tiedostokomponentit. Tätä tiedostoa pitää vielä hieman muokata, jotta voimme viitata asennuskansioihin itse pää-wxs-tiedostossa. Avaa fragment-files.wxs WidEditillä ja tee seuraavat muutokset: Valitse Files-välilehti nimeä Files-kansion Id ProgramFilesFolder:ksi ja sen Name PROGRAMFILESFOLDER:ksi. Jos ohjelma on 64-bittinen, niin nimeä Files-kansion Id ProgramFiles64Folder:ksi. {{:ohjeet:programfilesfolder4.png|}} Voit myös nimetä ohjelman asennuskansioiden Id:t helpommin muistettaviksi, jos aiot viitata niihin. {{:ohjeet:namedfolder4.png|}} Lisäksi muuta asennettavan ohjelman päähakemiston Id muotoon INSTALLDIR. {{:ohjeet:installdir2.png|}} ===== Registry-arvot ===== Jos asennettava ohjelma on luonut registryyn joitakin arvoja, niin ne saadaan .reg-tiedostosta helposti lisättyä tehtävään pakettiin. Tee RegEntries.reg-tiedosto, johon lisäät kaikki registryyn tulevat asetukset. Sen jälkeen aja komentorivillä käsky ''heat reg RegEntries.reg -cg regComponents -gg -out fragment-registry.wxs'' Jos registry-arvoissa on absoluuttisia tiedostopolkuviittauksia, niin nämä pitää vielä korjata fragment-registry.wxs:stä. Esim. C:\Program Files\Ohjelma pitää muuttaa muotoon [ProgramFilesFolder]Ohjelma . ===== Pää-wxs-tiedoston luonti ===== Avaa Wix Edit ja luo uusi wix-projekti. Käynnistyvässä wizardissa poista SourceDir:n alla oleva PFiles-kansio. Muutaman Next:n painamisen jälkeen voimme alkaa käsitellä itse projektin tietoja. Global-välilehti sisältää tiedot paketin perustiedoista. Product-kohdassa kannattaa muuttaa Manufacturer, Name ja Version sopiviksi: {{:ohjeet:globalproduct3.png|}} Package-kohdassa Description ja Manufacturer kannattaa vaihtaa: {{:ohjeet:globalpackage3.png|}} Jos ohjelma on 64-bittinen, niin lisää kohta Platform ja anna sille arvoksi x64. Media-kohdassa voi Cabinetin nimen vaihtaa: {{:ohjeet:globalmedia3.png|}} Tallenna lopuksi luomasi .wxs esimerkiksi nimellä project.wxs. ===== Tiedostojen ja registry-tietojen linkittäminen projektiin ===== Valitse Files-välilehden alta Features. Muokkaa DefaultFeaturen Id ja Title itsellesi sopiviksi. Lisää featureen ComponentGroupRef ja anna sen Id:ksi fragment-files.wxs:ssä määritelty ComponentGroupin Id (eli tässä esimerkkitapauksessa fileComponents). {{:ohjeet:componentgroupref2.png|}} Samalla tavalla kuin tiedostojen linkittämisessä lisää featureen ComponentGroupRef ja anna sen Id:ksi fragment-registry.wsx:ssä määritelty ComponentGroupin Id (eli tässä esimerkkitapauksessa regComponents). {{:ohjeet:componentgroupref3.png|}} ===== Pikakuvakkeet ===== Shortcutien määritteleminen vaatii hieman lisätyötä, jotta Windows Installerin ja Group Policyjen keskinäinen toiminta taataan. Valitse Files-välilehden alta Files. Lisää kansion SourceDir alle uusi kansio Programs, jonka Id:ksi laita ProgramMenuFolder ja Name:ksi Programs. {{:ohjeet:programs.png|}} Seuraavaksi lisää Programs-kansion alle uusi kansio, jonka Id ja Name pitää asettaa. Name on se, mitä käyttäjän Start-menun alle tulee näkyviin. {{:ohjeet:appmenu2.png|}} Seuraavaksi lisätään itse pikakuvakekomponentit. Lisää edeltävän kansion alle uusi Component, arvo sille Guid ja anna sille sopiva Id. {{:ohjeet:shortcutcomponent2.png|}} Käy lisäämässä uusi ComponentRef-viittaus Features tauluun. {{:ohjeet:shortcutfeature2.png|}} Lisää uusi RegistryValue äsken luomaasi komponenttiin. Tämä tarvitaan Windows Installerin miellyttämiseksi non-advertised shortcutien tapauksessa: Key-arvoksi laita Software\Ohjelma, KeyPath pitää asettaa arvoon yes, Root on HKCU, Type on string ja Valueksi voi laittaa minkä tahansa merkkijonon, kuten esimerkiksi ohjelman nimen. {{:ohjeet:shortcuthkcu2.png|}} Seuraavaksi komponenttiin lisätään Shortcut. Aseta haluamasi Id ja Name (tulee näkyviin käyttäjälle Startmenun alle). Target on ajettavan ohjelman polku. Koska fragment-files.wxs:ssä ohjelman päähakemisto on nimetty INSTALLDIR:ksi, niin voimme viitata siihen [INSTALLDIR]-syntaksilla. WorkingDirectory määrää hakemiston, jossa ohjelma käynnistetään. Jos ohjelma ei tarvitse omasta hakemistostaan mitään tiedostoja, niin tätä ei tarvitse asettaa. Jos ohjelma täytyy ajaa käynnistyä omassa hakemistossaan, niin tällöin WorkingDirectory voidaan laittaa osoittamaan kyseiseen hakemistoon Id-nimellä, joka on määritelty fragment-files.wxs:ssä. WorkingDirectoryn arvoksi voi myös laittaa jonkin Windowsin [[http://msdn.microsoft.com/en-us/library/aa370813%28v=vs.85%29.aspx|KNOWNFOLDERID]]:n. Tässä esimerkkitapauksessa PersonalFolder osoittaa käyttäjän My Documents-kansioon. {{:ohjeet:shortcut2.png|}} Jos sinulla on käytössäsi ohjelma.exe:ä vastaava ohjelma.ico-tiedosto ohjelma.exe:n kanssa samassa hakemistossa, niin kyseinen ikoni tulee näkyviin pikakuvakkeeseen. Ikonin saa valmiista .exe-tiedostosta irti esim ohjelmalla [[http://www.nirsoft.net/utils/iconsext.html|Icons Extract]]. Lopuksi vielä pitää kertoa, että kyseinen pikakuvakekansio halutaan poistaa ohjelman poiston yhteydessä. Tätä varten yhteen pikakuvakekomponenttiin pitää vielä lisätä RemoveFolder-objekti. {{:ohjeet:removefolder2.png|}} ==== Ohjelman ikonin saaminen Add/Remove Programsiin ==== Jos olet Icons Extractilla saanut ohjelmasta irti ikonin, niin sen saa näkyviin Add/Remove Programsiin ohjelman kohdalle seuraavasti. Valitse Resources välilehden alta Icons. Valitse Add New ja anna sopiva Resource Name. Sen jälkeen lisää tiedosto lisää tähän Resourceen kyseinen ikoni-tiedosto. {{:ohjeet:addicon.png|}} ===== Properties ===== Ennen paketin kääntämistä kannattaa vielä asettaa ainakin seuraavat kaksi property-arvoa. ALLUSERS=1, jolloin ohjelma asennetaan käytettäväksi koneen kaikille käyttäjille ja ARPNOMODIFY=1, jolloin Add/Remove Programsissa ohjelman kohdalla ei ole mahdollisuutta muuntaa asennusta. Lisäksi jos haluat Add/Remove Programsiin ohjelman ikonin näkyviin, niin lisää myös ARPPRODUCTICON ja anna sille arvoksi aiemmin antamasi ikoniresurssin nimi. {{:ohjeet:properties2.png|}} ===== Ohjelman Upgrade ===== Jos paketoitavasta ohjelmasta on olemassa vanhempi versio, niin kannattaa käyttää Windows Installerin Upgrade-ominaisuutta hyväkseen, jolloin uutta versiota asennettaessa vanha versio poistuu automaattisesti. Ota selville aiemman version UpgradeCode esimerkiksi InstEdillä. Lisää Global välilehden Product-tietoihin tämä UpgradeCode. {{:ohjeet:upgradecode.png|}} Sen jälkeen lisää Productiin Upgrade ja anna sen Id:ksi kyseinen UpgradeCode. {{:ohjeet:upgrade.png|}} Lisää Upgrade-osan UpgradeVersion ja anna sinne sopivat tiedot ohjelman mukaan. {{:ohjeet:upgradeversion.png|}} Lopuksi lisää Actions-välilehden Execute Sequenceen InstallExecuteSequence ja siihen RemoveExistingProducts. {{:ohjeet:removeexisting.png|}} ===== MSI-paketin kääntäminen ===== Luo make.bat-tiedosto, joka sisältää seuraavat käskyt: ''candle.exe -nologo fragment-files.wxs fragment-registry.wxs project.wxs''\\ ''light.exe -b ".\Files" -nologo -out project.msi fragment-files.wixobj fragment-registry.wixobj project.wixobj'' Jos copy/pastetat tuon suoraan, niin muista muuttaa ".\Files":n lainausmerkit toimivaan muotoon, koska DokuWikin code-muotoinen teksti esittää nuo lainausmerkit väärin. Nyt sinulla siis pitäisi olla hakemisto, jossa on itse Files-kansio ja tiedostot fragment-files.wxs, project.wxs ja make.bat. Aja tässä hakemistossa make.bat ja lopputuloksena on project.msi, jonka voi asentaa tietokoneelle.

ohjeet/wix.txt · Viimeksi muutettu: 2023/01/24 11:52 / matronka