Color scheme: Light
You are here: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Izdaja aplikacije za produkcijo

Izdaja aplikacije za produkcijo

Zgradite kopije, s katerimi aplikacijo izdate – ACCDE za Access Runtime in ACCDE za skrbnike –, vsako že nastavljeno za svoj način in z manifestom, ki ga namestitveni program lahko preveri.

Zahteva WKL Forms Object Library 1.51 ali novejšo in orodje za gradnjo iz paketa izdaje (tools\build).

Pregled rešitve

Orodje za gradnjo zgradi aplikacijo iz njenih besedilnih izvornih datotek (Gradnja aplikacije Access iz besedilnih izvornih datotek). Za izdajo poskrbita dva vnosa v access-app.json: appModel navaja model WKL Application Designer (naslov, ikona, zagonski obrazec, trak, uporabniški vmesnik vsakega načina), deploy pa različico in cilje. Za vsak cilj orodje kopira ACCDB (razvoj) ali ACCDE, v kopijo z DAO zapiše zagonske lastnosti načina cilja – kopija se nikoli ne odpre, zato se njen zagonski obrazec med gradnjo ne zažene – in poleg nje zapiše app-manifest.json in INSTALL.txt. INSTALL.txt (v angleščini in nemščini) je namenjen skrbniku pri stranki: mapo naj kopira v lokalno mapo uporabnika (nikoli kot prilogo e-pošte ali preneseni arhiv), jo z tools\deploy\Set-AccessTrustedLocation.ps1 nastavi kot zaupanja vredno mesto in preveri s tools\deploy\Test-AccessTrust.ps1.

Izvedba

  1. Model shranite kot datoteko poleg izvornih datotek, na primer z oblikovalnikom aplikacije in nato z Export-AccessApp.ps1, ki ga zapiše tako, kot ga navaja appModel, skupaj z datoteko ikone.
  2. Model in izdajo navedite v access-app.json:

    {
      "name": "Stranke",
      "references": [ { "library": "WklForms", "major": 2, "minor": 0 } ],
      "forms": "src/forms",
      "modules": "src/modules",
      "appModel": "src/app/app-model.json",
      "deploy": { "version": "1.4.0", "targets": ["Administration", "Production"] }
    }
  3. Gradnja: .\tools\build\Build-AccessApp.ps1 -Project .\access-app.json. Izpis navede ACCDB, ACCDE in izdane datoteke, na primer deploy\production\Stranke.accde. -Target Production zgradi samo mapo za produkcijo.
  4. V zagonskem obrazcu pokličite EnsureApplication, da se kopija, odprta v drugem načinu, sama popravi (glejte vadnico):

    Private Sub Form_Load()
        Dim findings As String
        findings = CreateObject("WklForms.Application").EnsureApplication()
        If Len(findings) > 0 Then Debug.Print findings
    End Sub
  5. deploy\production predajte namestitvenemu programu, ki aplikacijo postavi na računalnike uporabnikov; ta datoteko preveri glede na sha256 v app-manifest.json. Kopijo preverite, preden jo odpre Access: Access ob odpiranju piše v ACCDE, tudi z /runtime, in kontrolna vsota se nato ne ujema več. Kontrolna vsota pokaže poškodovano kopijo, ne pa, od kod datoteka izvira: manifest je poleg datoteke in ga je mogoče zamenjati skupaj z njo.

Opombe

  • Samo na zaupanja vrednem mestu. Zagonske lastnosti delujejo le, če Access datoteko odpre z zaupanja vredno kodo. Pri strožji nastavitvi makrov zunaj zaupanja vrednega mesta Access izdane datoteke ACCDE sploh ne odpre, zato lastnosti tam niti ne ščitijo niti niso pomembne (glejte Aplikacija se odpre, njena koda pa se ne izvaja). Izdane datoteke postavite na zaupanja vredno mesto in računalnik preverite s tools\deploy\Test-AccessTrust.ps1.
  • Pravilno že ob prvem odpiranju. Zagonske lastnosti načina so v izdani datoteki; brez deploy ima ACCDE, narejena iz ACCDB, razvojne lastnosti, dokler se EnsureApplication enkrat ne izvede in se podatkovna zbirka znova ne odpre.
  • Preverjanje izdane kopije brez okolja Runtime. Zagonske lastnosti je mogoče prebrati iz izdane datoteke, ne da bi jo odprli v Accessu, zato lahko tudi računalnik brez okolja Access Runtime ugotovi, ali je produkcijska kopija zaklenjena. V 32-bitnem PowerShellu z DAO:

    $engine = New-Object -ComObject DAO.DBEngine.120
    $db = $engine.OpenDatabase("$PWD\deploy\production\Stranke.accde", $false, $true)
    foreach ($n in 'StartUpShowDBWindow', 'AllowFullMenus', 'AllowShortcutMenus', 'AllowSpecialKeys', 'AllowBypassKey') {
        try { '{0} = {1}' -f $n, $db.Properties.Item($n).Value } catch { "$n missing" }
    }
    $db.Close()

    S privzetimi vrednostmi za produkcijo je vseh pet False. To pove, ali je izdana kopija zaklenjena; ne nadomesti zagona v okolju Runtime, ki pokaže tudi zagonski obrazec in trak.

  • Ikona je shranjena v podatkovni zbirki. AppIcon je iz izdane kopije odstranjena – navajala bi datoteko na računalniku za gradnjo –, EnsureApplication pa ob prvem zagonu ikono zapiše kot datoteko na uporabnikovem računalniku; ikona začne veljati takoj.
  • ACCDE se izvaja samo v Accessu svoje bitne različice; katere, pove bitness v manifestu. Podatkovna zbirka potrebuje registrirano izdajo WKL različice iz requires ali novejšo (Uvajanje aplikacije s kontrolniki WKL v računalnike uporabnikov).
  • Česa deploy ne naredi: ničesar ne namesti, ničesar ne registrira in ne nastavi zaupanja vrednega mesta (tools\deploy\Set-AccessTrustedLocation.ps1).
  • To ni zaščita. Zaklenjene možnosti uporabnikom preprečijo, da bi po nesreči prišli do načrta; podatke zaščitite s pravicami na strežniku.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/deliver-an-application-for-production.txt · Last modified: by Wolfgang van der Stille