Color scheme: Dark
You are here: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Uvajanje aplikacije s kontrolniki WKL v računalnike uporabnikov

Uvajanje aplikacije s kontrolniki WKL v računalnike uporabnikov

Aplikacijo Access (ACCDB ali ACCDE, polni Access ali Access Runtime), ki uporablja kontrolnike WKL, prenesite na računalnike njenih uporabnikov.

Zahteva katero koli izdajo WKL Forms Object Library; primeri za mapo izdaje uporabljajo <version>.

Pregled rešitve

Vsak uporabniški računalnik potrebuje štiri stvari, v tem vrstnem redu:

  1. .NET 10 Desktop Runtime v bitni različici Officea (ali okolja Access Runtime).
  2. Datoteke izdaje v tej bitni različici, v lokalni mapi, ki ostane.
  3. Registracijo datoteke Wkl.Forms.ObjectLibrary.dll za vsakega uporabnika sistema Windows, ki zažene aplikacijo.
  4. Samo aplikacijo, zgrajeno z isto izdajo, na zaupanja vrednem mestu.

Spodnji skript izvede koraka 2 in 3; korak 1 je Microsoftov namestitveni program, korak 4 pa vaša lastna distribucija sprednjega dela. Brez skripta koraka 2 in 3 opravi zaganjalnik iz paketa (glejte Opombe).

Izvedba

Kontrolni seznam za vsak računalnik:

KorakKajPreverjanje
1Ugotovite bitno različico Officea ali okolja Access RuntimeDatoteka › Račun › Vizitka programa Access; za Runtime: mapa Program Files (x86) (32-bitno) ali Program Files (64-bitno), v kateri je MSACCESS.EXE
2Namestite .NET 10 Desktop Runtime te bitne različicehttps://dotnet.microsoft.com/download/dotnet/10.0, stolpec „Desktop Runtime“
3Kopirajte mapo izdaje x86 ali x64Vse datoteke v eno lokalno mapo, na primer %LOCALAPPDATA%\WKL\Access Components\<version>\x86
4Registrirajte za uporabnika sistema Windowsregsvr32 /n /i:user, enkrat za vsakega uporabnika sistema Windows na računalniku
5Sprednji del postavite na zaupanja vredno mestotools\deploy\Set-AccessTrustedLocation.ps1 iz paketa izdaje (spodaj), Datoteka › Možnosti › Središče zaupanja › Zaupanja vredna mesta ali mesto, ki ga vaš oddelek IT nastavi s pravilnikom
6Zaženite aplikacijoObrazci s kontrolniki WKL se odprejo brez sporočila

Skript za koraka 3 in 4 (PowerShell, zažene ga vsak uporabnik; brez skrbniških pravic). $Source nastavite na mapo izdaje v vaši omrežni skupni rabi, $Bitness pa za 32-bitni Office na x86:

$Version = '1.59'                                 # the release folder (<version>)
$Bitness = 'x86'                                  # 'x64' for 64-bit Office
$Source  = "\\server\share\WKL Forms Object Library\$Version\$Bitness"
$Target  = Join-Path $env:LOCALAPPDATA "WKL\Access Components\$Version\$Bitness"
 
# Only the Access of this session: on a terminal server other users' Access processes are visible too.
$session = (Get-Process -Id $PID).SessionId
Get-Process MSACCESS -ErrorAction SilentlyContinue | Where-Object SessionId -eq $session | ForEach-Object {
    throw 'Close Access first: it keeps a loaded DLL until it exits.'
}
New-Item -ItemType Directory -Force $Target | Out-Null
Copy-Item (Join-Path $Source '*') $Target -Force
 
$regsvr32 = if ($Bitness -eq 'x86') { "$env:windir\SysWOW64\regsvr32.exe" } else { "$env:windir\System32\regsvr32.exe" }
$process = Start-Process $regsvr32 -ArgumentList '/s', '/n', '/i:user', "`"$Target\Wkl.Forms.ObjectLibrary.dll`"" -Wait -PassThru
if ($process.ExitCode -ne 0) { throw "regsvr32 failed with exit code $($process.ExitCode)." }
'WKL Forms Object Library registered.'

Zaženite ga iz prijavnega skripta ali orodja za distribucijo programske opreme v kontekstu uporabnika, ne kot drug uporabnik: registracija pristane v registru uporabnika, ki skript zažene.

Skript za korak 5, v istem kontekstu: Set-AccessTrustedLocation.ps1 zapiše vnos, ki ga zapiše pogovorno okno središča zaupanja (za posameznega uporabnika sistema Windows, brez skrbniških pravic), z -Remove pa ga znova odstrani:

$Front = Join-Path $env:LOCALAPPDATA 'Contoso\Orders'      # the folder of the front end
& "\\server\share\WKL Forms Object Library\$Version\tools\deploy\Set-AccessTrustedLocation.ps1" -Path $Front

Mapa v omrežni skupni rabi potrebuje še -AllowNetworkLocations, ki dovoli zaupanja vredna mesta v omrežju za vse uporabnikove vnose; lokalna mapa za sprednji del se temu izogne. Mesta, nastavljena s pravilnikom, imajo prednost: če je skrbnik zaupanja vredna mesta izklopil, skript opozori, da njegov vnos nima učinka.

Opombe

  • Brez skripta: zaganjalnik. Paket vsebuje bootstrapper\Wkl.Bootstrapper.exe, zaganjalnik (Starter), ki te korake ob zagonu aplikacije izvede za vsakega uporabnika – različico kopira v uporabnikov profil, komponente WKL registrira za uporabnika, mapo nastavi kot zaupanja vredno mesto in zažene Access, brez skrbniških pravic. Glejte Razdeljevanje aplikacije uporabnikom z zaganjalnikom. Od izdaje 1.56.2 paket vsebuje zaganjalnik 2.0, poleg vsake DLL pa še registration.json (registracija za posameznega uporabnika kot podatki): zaganjalnik 2.0 te ključe zapiše in odstrani sam, namesto da bi klical regsvr32, in izdajo ohrani registrirano, dokler jo nameščena aplikacija še potrebuje.
  • ACCDE za vsako izdajo. ACCDE zgradite iz ACCDB, ko je registrirana izdaja, ki jo dobijo uporabniki. Podatkovna zbirka, zgrajena s starejšo izdajo, se odpre z novejšo registracijo (Access sklic razreši ob odpiranju podatkovne zbirke); ACCDE na uporabnikovem računalniku ni mogoče znova prevesti, zato zgradite novo ACCDE vsakič, ko uporabite člane novejše izdaje.
  • Vrstni red posodobitve: najprej komponente, nato podatkovna zbirka. ACCDE, zgrajena ob registrirani eni izdaji, deluje ob registrirani novejši izdaji (sklic takrat kaže na novejšo datoteko in je nepoškodovan). Obratno ni podprto: ACCDE, zgrajena ob registrirani novejši izdaji in odprta na računalniku, ki ima še starejšo, ima lahko poškodovan sklic (TYPE_E_LIBNOTREGISTERED), obrazec z dogodki kontrolnika WKL pa ne uspe z napako 459. Na računalniku sredi posodobitve nove komponente s staro podatkovno zbirko delujejo, nova podatkovna zbirka s starimi komponentami pa ne. Komponente uvedite pred podatkovno zbirko, ki je zgrajena z njimi.
  • Access Runtime. Kontrolniki v okolju Access Runtime delujejo enako kot v polnem Accessu. Runtime nima dodatkov: menijski vnos oblikovalnika upravitelja povezav (Orodja zbirke podatkov › Dodatki) je le orodje za razvijalca; aplikacije WklLinkManager kličejo iz lastne kode.
  • Več uporabnikov sistema Windows na enem računalniku (terminalski strežnik, skupni računalniki): vsak uporabnik skript zažene enkrat. Registracija za vse uporabnike računalnika (regsvr32 kot skrbnik brez /n /i:user) v tej izdaji ni podprta.
  • Zaupanja vredno mesto. VBA aplikacije se izvaja samo na zaupanja vrednem mestu ali v zaupanja vredni podatkovni zbirki. Zunaj njega Access vpraša z varnostnim obvestilom (privzeta nastavitev makrov, ACCDE) ali kodo brez besede izklopi (strožje nastavitve, ACCDB v polni različici) – glejte Aplikacija se odpre, njena koda pa se ne izvaja. Mesto zajame podmape samo z -AllowSubfolders; Test-AccessTrust.ps1 iz paketa preveri računalnik pred prvim zagonom. Nastavitev ActiveX Onemogoči vse kontrolnike brez obvestila ustavi kontrolnike WKL tudi na zaupanja vrednem mestu (napaka Accessa 2926); druge možnosti ActiveX tega ne storijo – glejte zgornjo stran za odpravljanje težav.
  • Posodobitev. Za posodobitev na računalniku zaprite Access, zaženite skript z novo različico in zamenjajte sprednji del, zgrajen z njo. Mapo stare različice nato izbrišite.
  • Bitna različica. Podprt je Access v 32- in 64-bitni različici.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/deploy-to-user-pcs.txt · Last modified: by Wolfgang van der Stille