Nastavitve namestitvenega programa (<name>.msi.json)
Nastavitve namestitvenega programa opisujejo paket Windows Installer (MSI), ki ga oddelek IT namesti enkrat in ki zaganjalnik namesti v računalnik: podatke paketa, ali namešča za ves računalnik, za posameznega uporabnika ali oboje, pogovorna okna, ki jih vidi oseba, ki namešča, in njihova besedila v posameznih jezikih. Datoteka je poleg projektne datoteke in se bere samo ob gradnji paketa MSI; zaganjalnik je ob zagonu nikoli ne bere in z izdajo nikoli ne pride v računalnike uporabnikov.
Zahteva: WKL Bootstrapper 2.3.0 ali novejši.
/checkdatoteko preveri,/msi-sourcesiz nje zapiše izvorne datoteke WiX,tools/New-StarterMsi.ps1pa zgradi pakete.
Kje je datoteka
Datoteka je poimenovana po projektni datoteki in je v isti mapi:
| Projektna datoteka | Nastavitve namestitvenega programa |
|---|---|
demo.bootstrapper.json (projektna datoteka, poimenovana po demo.exe) | demo.msi.json |
bootstrapper.json | bootstrapper.msi.json |
blagajna.json (navedena z /RUNCFG) | blagajna.msi.json |
Poti v datoteki (ikona, licenca, pasica, slika pogovornega okna, fragmenti) so relativne glede na njeno mapo in iz nje
ne smejo voditi (..).
Kaj se zgradi
tools\New-StarterMsi.ps1 -Project <project file> zgradi en paket za vsak obseg in jezik:
| Nastavitve | Paketi |
|---|---|
Ni <name>.msi.json | <product>-<version>.msi: za računalnik, v angleščini, brez pogovornih oken – enak paket kot pred različico 2.3.0 |
| En obseg, en jezik | <product>-<version>.msi |
| Več obsegov ali jezikov | <product>-<version>-<scope>-<culture>.msi, na primer Demo-1.2.0-user-de-DE.msi |
Izvorne datoteke WiX ostanejo v <output folder>\<product>.wix (machine.wxs, user.wxs, ui.wxs, ena datoteka .wxl
za vsako kulturo), kjer jih lahko pregledate ali ročno zgradite; -SourcesOnly zapiše samo njih. Paket za računalnik
ohrani kodo za nadgradnjo paketov, zgrajenih pred različico 2.3.0, zato nov paket zamenja starega; paket za uporabnika
ima svojo kodo, zato se paketa nikoli ne zamenjata med seboj.
Kaj paket naredi in česa ne
Paket namesti zaganjalnik, njegovo projektno datoteko, datoteko INI z vrednostmi iz pogovornih oken in logotip ter ustvari bližnjice. Vse, kar se izvaja za posameznega uporabnika – kopiranje aplikacije, komponente, zaupanja vredno mesto, zagon –, ostane naloga zaganjalnika ob vsakem zagonu (glejte Namestitveni program). Vrednosti, vnesene na lastni strani, se zapišejo v datoteko INI poleg zaganjalnika, od koder jih bere aplikacija; zaganjalnik jih ne obdeluje.
Primer
{
"format": 1,
"package": { "name": "Demo", "manufacturer": "Contoso", "license": "installer\\license.rtf", "banner": "installer\\banner.png" },
"scopes": [ "machine", "user" ],
"shortcuts": { "startMenu": true, "desktop": true },
"languages": [ "de-DE", "en-US" ],
"texts": { "de-DE": { "WelcomeDlgTitle": "Willkommen bei Demo" } },
"dialogs": { "install": [ "welcome", "license", "folder", "page:server", "verify" ], "exit": { "launch": true } },
"pages": [
{ "id": "server", "title": { "de-DE": "Datendienst", "en-US": "Data service" }, "description": "URL",
"controls": [
{ "type": "text", "label": "Where the application finds its data." },
{ "type": "edit", "property": "SERVER", "label": "URL", "default": "https://", "required": true, "maxLength": 200 },
{ "type": "radio", "property": "MODE", "label": "Mode", "default": "live",
"options": [ { "value": "live", "text": "Live" }, { "value": "test", "text": "Test" } ] }
] }
],
// The values go to demo.ini beside demo.exe, section [Settings].
"ini": { "section": "Settings" },
"fragments": [ "installer\\extra.wxs" ]
}
Komentarji (//) in vejice na koncu so dovoljeni. Neznane ključe gradnja zavrne, zato napačno zapisan ključ nikoli ne
privede do paketa, ki mu brez opozorila manjka pogovorno okno.
Kako vrednosti pridejo do aplikacije
- Vsaka vrednost z lastne strani se zapiše v datoteko INI poleg zaganjalnika (
demo.inipolegdemo.exe, razdelek[Settings]):KEY=value, potrditveno polje kot1ali0. Datoteko bere aplikacija, zaganjalnik pa ne. Da aplikacija izve, kje je datoteka, ji pot sporočite vstart.environmentprojekta, na primer"WKL_SETTINGS": "[StarterDir]\[StarterName].ini"(glejte Projektna datoteka); aplikacija prebereEnviron("WKL_SETTINGS"). - Oddelek IT lahko vsako vrednost nastavi brez pogovornih oken, v ukazni vrstici z imenom lastnosti:
msiexec /i Demo-1.2.0-machine-de-DE.msi /qn SERVER=https://data.company.com MODE=test LOGGING=0.0počisti potrditveno polje. - Vrednosti se shranijo (
HKEY_LOCAL_MACHINEza računalnik,HKEY_CURRENT_USERza uporabnika, ključSoftware\WKL\Starter\<product>\Settings). Poznejši ukaz „Spremeni“ v pogovornem oknu za vzdrževanje ali v Aplikacijah začne s temi vrednostmi in datoteko INI zapiše znova; popravilo jih ohrani. - Vrstni red: vrednost iz ukazne vrstice ima prednost pred shranjeno, shranjena pa pred privzeto.
Besedila v več jezikih
Vsako besedilo, ki ga bere oseba, ki namešča (title, description, label, hint, text možnosti, launchText), je
zapisano bodisi kot en niz, ki velja za vse jezike, bodisi kot objekt z enim nizom za vsako kulturo:
"title": "Server"
"title": { "de-DE": "Datendienst", "en-US": "Data service" }
Kultura brez lastnega besedila uporabi niz za vse jezike; če ga ni, ostane besedilo prazno.
Ključi
| Ključ | Privzeto | Pomen |
|---|---|---|
format | - | Vedno 1. |
package.name | display.name iz projektne datoteke | Ime v Aplikacijah in v pogovornih oknih. |
package.manufacturer | display.publisher iz projektne datoteke | Založnik. |
package.version | različica izdelka zaganjalnika | Dve ali tri števila; Windows Installer primerja samo prva tri. |
package.upgradeCode | GUID, izpeljan iz imena izdelka in obsega | Koda za nadgradnjo; privzeta vrednost ostane pri vseh gradnjah enaka. Nastavite jo samo, če prevzemate paket, ki je bil zgrajen prej. |
package.icon | brez | Datoteka .ico za vnos v Aplikacijah. |
package.license | brez | Datoteka .rtf, ki jo prikaže pogovorno okno license. |
package.banner | pasica WiX | .bmp ali .png, 493 × 58 slikovnih pik, na vrhu pogovornih oken. |
package.dialogImage | slika WiX | .bmp ali .png, 493 × 312 slikovnih pik, v pozdravnem in zaključnem pogovornem oknu. |
scopes | [ "machine" ] | machine (za računalnik; oddelek IT namešča s skrbniškimi pravicami), user (za uporabnika, brez skrbniških pravic) ali oboje. En paket za vsak obseg, vsak s svojo kodo za nadgradnjo. |
installFolder.machine | [ProgramFilesFolder]WKL\<product> | Namestitvena mapa za računalnik: [ProgramFilesFolder] ali [CommonAppDataFolder], nato pot pod njo. Pogovorno okno folder osebi, ki namešča, dovoli izbrati drugo. |
installFolder.user | [LocalAppDataFolder]Programs\WKL\<product> | Namestitvena mapa za uporabnika: [LocalAppDataFolder] ali [AppDataFolder], nato pot pod njo. |
shortcuts.startMenu | true | Bližnjica v meniju Start (pri namestitvi za računalnik za vse uporabnike, pri namestitvi za uporabnika za tega uporabnika). |
shortcuts.desktop | false | Bližnjica na namizju. |
shortcuts.name | package.name | Ime bližnjic. |
languages | [ "en-US" ] | Kulture, za katere se paket zgradi: en-US, de-DE, sl-SI, hr-HR, it-IT. Prva je privzeta. |
texts | brez | Besedila standardnih pogovornih oken, ki jih želite zamenjati, za vsako kulturo: ID lokalizacije WiX (na primer WelcomeDlgTitle) in besedilo, zapisano tako, kot ga zapiše WiX: [Name] je lastnost, {\WixUI_Font_Title} pisava. Samo kulture iz languages. |
dialogs.install | [ "welcome", "verify" ] | Pogovorna okna namestitve po vrsti: najprej welcome, nato license, folder in page:<id> v poljubnem vrstnem redu, na koncu verify. Napredek in zaključno pogovorno okno vedno sledita. |
dialogs.changeShowsPages | true | Ukaz „Spremeni“ v pogovornem oknu za vzdrževanje znova vodi skozi lastne strani, zato je njihove vrednosti mogoče pozneje spremeniti. |
dialogs.exit.launch | false | Potrditveno polje v zaključnem pogovornem oknu, ki po novi namestitvi zažene zaganjalnik. |
dialogs.exit.launchText | „<name> jetzt starten“ v nemškem paketu, sicer „Start <name>“ | Besedilo tega potrditvenega polja. |
pages | brez | Lastne strani (glejte spodaj). |
ini.file | <starter name>.ini | Ime datoteke INI poleg zaganjalnika (demo.ini poleg demo.exe). |
ini.section | Settings | Razdelek, v katerega se zapišejo vrednosti. |
fragments | brez | Izvorne datoteke WiX (.wxs) založnika, vključene v gradnjo. Gradnja se samodejno sklicuje na vsako komponento, skupino komponent, lastnost, uporabniški vmesnik in dejanje po meri, ki jih fragment definira neposredno v elementu <Fragment>, zato zadošča, da datoteko navedete. |
Lastne strani
Lastna stran se prikaže v okviru standardnih pogovornih oken (pasica z naslovom in opisom, Nazaj/Naprej/Prekliči) in vsebuje kontrolnike od zgoraj navzdol.
| Ključ strani | Pomen |
|---|---|
id | Črke in števke, na začetku črka, enolično; prikaže se s page:<id> v dialogs.install. |
title | Naslov v pasici (obvezno). |
description | Vrstica pod naslovom. |
controls | Kontrolniki (vsaj eden). |
| Ključ kontrolnika | Pomen |
|---|---|
type | text (odstavek), edit, checkbox, radio, combo ali folder (pot, vnesena v polje za urejanje; pogovorno okno za brskanje je v Windows Installerju namenjeno samo namestitveni mapi). |
property | Javna lastnost, ki hrani vrednost: velike črke, števke in _, na začetku črka. Oddelek IT jo lahko nastavi v ukazni vrstici (msiexec /i demo.msi SERVER=https://...). Ne velja za text. |
label | Oznaka nad kontrolnikom; za text sam odstavek; za checkbox besedilo poleg polja. Oglati oklepaji se prikažejo, kot so zapisani. |
hint | Namig pod kontrolnikom v manjši pisavi. |
default | Vrednost, preden jo oseba, ki namešča, spremeni; za checkbox 1 ali prazno, za radio in combo ena od možnosti. |
required | true: gumb Naprej ostane onemogočen, dokler je vrednost prazna. |
maxLength | Najdaljša vrednost za edit; 0 za neomejeno. |
options | Možnosti za radio in combo: value (shranjena) in text (prikazana). |
iniKey | Ključ v datoteki INI; prazno za ime lastnosti. |
Pravila
Zaganjalnik ta pravila preveri z ukazom /check <name>.msi.json (izhodna koda 0 veljavno, 11 težave; /json navede
vsako težavo za Bootstrapper Manager). Za vsako težavo je navedeno kršeno pravilo in to, kar ga krši:
scopesnavajamachinein/aliuser, vsakega enkrat.dialogs.installse začne zwelcomein konča zverify, vsakim enkrat, in nobenega standardnega pogovornega okna ne prikaže dvakrat: oseba, ki namešča, potrdi, preden se karkoli spremeni.installFolderse začne s standardno mapo svojega obsega (glejte ključe) in ima pot pod njo.- Vsaka stran iz
pagesje prikazana vdialogs.install, vsakpage:<id>pa navaja obstoječo stran. licensevdialogs.installzahtevapackage.license.- Lastnosti so zapisane z velikimi črkami in uporabljene enkrat.
- Lastnost ali ključ INI, ki je videti kot geslo (
pass,pwd,secret,token,kennwort), je zavrnjen: datoteko INI poleg zaganjalnika lahko bere vsak uporabnik računalnika. Gesla in ključi sodijo v prijavo, ki jo ima aplikacija sama. - Privzeta vrednost za
radioincomboje ena od možnosti; privzeta vrednost zacheckboxje1ali prazno. maxLengthvelja samo zaedit.languagesnavaja samo kulture s seznama;textssamo kulture izlanguages.package.versionsta dve ali tri števila,package.upgradeCodeje GUID.- Datoteke imajo pravo končnico (
.ico,.rtf,.bmp/.png,.wxs), so relativne in brez..; če je datoteka veljavna,/checknavede tudi vsako datoteko, ki manjka poleg nje. ini.fileje samo ime datoteke s končnico.ini;ini.sectionje brez oglatih oklepajev.- Neznani ključi so zavrnjeni.
- Gradnja izvornih datotek (
/msi-sources) zavrne lastno stran, katere kontrolniki v katerem koli jeziku ne gredo v pogovorno okno, in navede, koliko enot pogovornega okna stran potrebuje. Razdelite jo na dve strani ali skrajšajte besedila.
Sorodne teme
- Projektna datoteka: datoteka, po kateri so poimenovane nastavitve namestitvenega programa.
- Namestitveni program: kaj zaganjalnik naredi za posameznega uporabnika, potem ko ga je paket namestil.
- Uvajanje zaganjalnika s paketom MSI: gradnja in predaja paketov.