app-manifest.json
Opis enega izdanega cilja aplikacije Access, ki ga tools/build/Build-AccessApp.ps1 zapiše ob izdano
datoteko, kadar ima projektna datoteka vnos deploy (access-app.json). Programu, ki
aplikacijo postavi v uporabnikov računalnik, pove, katera datoteka je to, katero različico ima in kaj potrebuje.
Podpis
{
"format": 1,
"product": "Kunden",
"version": "1.4.0",
"target": "Production",
"file": "Kunden.accde",
"sha256": "3f5a...e09c",
"size": 1835008,
"bitness": "x86",
"runtime": true,
"requires": [ { "library": "WklForms", "version": "2.0" } ],
"built": "2026-10-12T09:30:00Z"
}
Povzetek
Ena datoteka na ciljno mapo, UTF-8 brez oznake vrstnega reda bajtov. Program jo prebere, da preveri izdano
datoteko (sha256, size) in se odloči, ali jo računalnik lahko izvaja (bitness, runtime, requires).
Parametri
| Vnos | Vrsta | Opis |
|---|---|---|
format | število | Različica sheme tega manifesta: 1. Bralnik zavrne višjo številko, ki je ne pozna. Nima nobene zveze z oblikama 1 in 2 datoteke bootstrapper.json zaganjalnika (Starter) iz Wkl.Bootstrapper: manifest sheme 1 berejo projekti obeh oblik. |
product | besedilo | name iz projektne datoteke. |
version | besedilo | deploy.version iz projektne datoteke. |
target | besedilo | Development, Administration ali Production. |
file | besedilo | Ime datoteke izdane podatkovne zbirke v isti mapi. |
sha256 | besedilo | SHA-256 (FIPS 180-4) datoteke, šestnajstiško z malimi črkami. |
size | število | Velikost datoteke v bajtih. |
bitness | besedilo | x86 ali x64 za ACCDE – izvaja se samo v programu Access tiste bitne različice, s katero je bila zgrajena –, any za ACCDB. |
runtime | Da/Ne | true za produkcijo: datoteka je namenjena okolju Access Runtime. Upravljanje potrebuje polni Access; razvoj je ACCDB za razvijalce. |
requires | seznam | Knjižnice tipov iz references projekta, ki navajajo library (WklForms, WklJSON), vsaka z različico, s katero je bila aplikacija zgrajena: različico, ki jo je Access zabeležil v podatkovni zbirki, to pa je najvišja različica, registrirana v računalniku za gradnjo (gradnja opozori, kadar je višja od različice v references). Manifesti aplikacij, zgrajenih z izdajo 1.x, navajajo knjižnico WklComponents, kot se je imenovala do izdaje 1.68. |
built | besedilo | Čas gradnje, UTC (ISO 8601). |
Opombe
sha256insizeopisujeta datoteko, kakršna je bila zgrajena, preden je bila odprta. Access ob odpiranju datoteke ACCDE ali ACCDB vanjo piše, tudi z/runtime, zato se njena velikost in kontrolna vsota spremenita. Datoteka v izhodni mapi, ki je bila enkrat odprta, se ne ujema več s svojim manifestom. Izdajo preizkusite na kopiji: datoteko kopirajte, primerjajte velikost in kontrolno vsoto z manifestom in šele nato odprite kopijo.- Mesto samo za branje ohrani datoteko nespremenjeno. Pisanje ob odpiranju ni nujno: v mapi, v kateri sme uporabnik samo brati (na primer pod
Program Filesali v skupni rabi samo z bralnim dostopom), Access datoteko ACCDE odpre, ne da bi vanjo pisal, brez datoteke zaklepanja (.laccdb) ter brez napake ali sporočila, tudi z/runtime, dva primerka programa Access pa jo lahko hkrati imata odprto; velikost in kontrolna vsota ostaneta nespremenjeni. Aplikacija, ki ob sebi zapisuje datoteke (dnevnik, poročilo), tega tam ne more; takšne datoteke spadajo v uporabnikovo mapo. - Kaj datoteka cilja že vsebuje: zagonske lastnosti svojega načina iz modela aplikacije (podokno za krmarjenje, meniji, posebne tipke, tipka za obvod, vrstica stanja, naslov, začetni obrazec, trak). Začnejo učinkovati ob prvem odpiranju v uporabnikovem računalniku.
- Različica knjižnic WKL: podatkovna zbirka se izvaja z registrirano izdajo svoje različice ali z novejšo; s starejšo ni podprta in lahko odpove z napako 459 (Uvajanje v računalnike uporabnikov).
builtse spremeni ob vsaki gradnji; datoteke primerjajte posha256, ne manifesta kot celote.- Kontrolna vsota zazna poškodovano kopijo, ne pa namerne spremembe:
sha256je v isti nepodpisani datoteki, zato lahko kdor koli, ki lahko zamenja datoteko, zamenja tudi manifest.
Primer kode
Preverjanje izdane datoteke v PowerShellu, preden jo postavite na mesto:
$manifest = Get-Content .\production\app-manifest.json -Raw | ConvertFrom-Json $hash = (Get-FileHash (Join-Path .\production $manifest.file) -Algorithm SHA256).Hash.ToLowerInvariant() if ($hash -ne $manifest.sha256) { throw "$($manifest.file) ist beschaedigt." }
Dedovanje
Ni.
sl/wiki/msaccess/comctl/reference/app-manifest-json.txt · Zuletzt geändert: von Wolfgang van der Stille