delivery-settings.json
Nastavitve izdaje projekta Access: različica aplikacije, njeni cilji in paketi izdaj knjižnic, ki jih izdaja prinese
s seboj. Datoteko berejo wkl-office deliver in skupina Izdaja dodatka.
Sintaksa
delivery\delivery-settings.json v mapi projekta, pod nadzorom različic:
{
"format": 2,
"version": "1.4.0",
"packages": {
"components": "%WKL_PACKAGES%\\Wkl.Forms.ObjectLibrary\\2.0.0",
"json": "%WKL_PACKAGES%\\Wkl.Office.JSON\\2.0.0",
"bootstrapper": "%WKL_PACKAGES%\\Wkl.Bootstrapper\\3.1.0"
}
}
Poleg nje je za vsak profil izdaje datoteka delivery\<profile>.profile.json:
{ "format": 1, "configuration": "Release" }
Povzetek
Vsak projekt ima eno tako datoteko s tistim, kar je skupno vsem profilom izdaje in česar SDK ne more razbrati iz
izvornih datotek: katero različico nosi izdaja in kje na računalniku za gradnjo so paketi izdaj. Vsak profil je
samostojna datoteka (profili izdaje). Nastavitve zaganjalnika (Starter) – datoteke,
register, bližnjice, pogoji in mapa v skupni rabi, iz katere bere – so v njegovi projektni datoteki za posamezni profil,
delivery\<profile>.bootstrapper.json, ki jo urejate s programom Bootstrapper Manager. Datoteka v obliki 1 namesto
tega navaja izdane načine v targets; še vedno velja.
Ne zamenjajte je z datoteko delivery.json, ki jo WKL Bootstrapper ob podpisani izdaji zapiše v izvorno mapo.
Parametri
| Vnos | Tip | Privzeto | Opis |
|---|---|---|---|
format | število | obvezno | 1 (cilji v tej datoteki) ali 2 (profili izdaje). Višjo številko SDK zavrne. |
version | besedilo | obvezno | Različica aplikacije (1.4.0), zapisana v vsak app-manifest.json. Možnost --version ukaza deliver jo preglasi. |
targets | seznam | v obliki 1 obvezno, vsaj en | Cilji izdaje; vsak cilj je en način modela aplikacije in se sme pojaviti največ enkrat. V obliki 2 ga SDK zavrne. |
targets[].mode | besedilo | obvezno | Development (ACCDB), Administration ali Production (ACCDE z zagonskimi lastnostmi načina). |
targets[].runtime | Da/Ne | true za Production, sicer false | Ali je ACCDE namenjena za Access Runtime (runtime v manifestu). |
targets[].starter | besedilo | delivery/<mode>.bootstrapper.json | Projektna datoteka zaganjalnika za cilj, relativno glede na mapo projekta. |
targets[].output | besedilo | build\Delivery\<mode> | Mapa izdaje cilja (mapa, iz katere se zaganja zaganjalnik, podobno kot ciljna mapa profila objave): absolutno, s spremenljivkami okolja ali relativno glede na mapo projekta. |
targets[].starterName | besedilo | Wkl.Bootstrapper.exe | Ime datoteke zaganjalnika v izdaji, s končnico .exe (demo.exe). Do različice WKL Bootstrapper 2.4.1 je bilo privzeto ime Wkl.Access.Bootstrapper.exe; če ga je uporabljala prejšnja izdaja v mapi, deliver opozori, saj bližnjice uporabnikov kažejo nanj. Če želite ime obdržati, nastavite starterName na Wkl.Access.Bootstrapper.exe. Njegova projektna datoteka se v tem primeru zapiše kot <name>.bootstrapper.json (demo.bootstrapper.json), ki jo zaganjalnik od različice 2.3.0 naprej najde po svojem imenu, zato si lahko več preimenovanih zaganjalnikov (profilov) deli eno mapo. |
targets[].bitness | besedilo | prazno | any iz ene gradnje izda cilj za 32-bitni in 64-bitni Office: datoteko ACCDB brez shranjene prevedene kode, ki jo Access ob prvem zagonu prevede sam, ne glede na to, ali je 32- ali 64-biten. Brez vrednosti se izda podatkovna zbirka v različici programa Access, ki gradi (ACCDE za Administration in Production). Vsako drugo vrednost SDK zavrne. |
packages.components | besedilo | prazno | Paket izdaje WKL Forms Object Library (mapa z x86 in x64). Potreben, kadar se projekt sklicuje na WklForms (do izdaje 1.x WklComponents). Paket druge glavne različice, kot je različica sklica, je napaka. |
packages.json | besedilo | prazno | Paket izdaje WKL Office JSON (prej WKL Access JSON; strežnik je od 2.0.0 Wkl.Office.JSON.dll, do 1.0.3 Wkl.Access.JSON.dll). Potreben, kadar se projekt sklicuje na WklJSON. Paket od 2.0.0 naprej potrebuje zaganjalnik 2.3.1 ali novejši; s starejšim se deliver prekine. |
packages.bootstrapper | besedilo | obvezno za izdajo | Mapa z izdajo programa WKL Bootstrapper (z Wkl.Bootstrapper.exe, do različice 2.4.1 Wkl.Access.Bootstrapper.exe, in tools). Za WKL Forms Object Library 2.0 je potreben WKL Bootstrapper 3.1 ali novejši; starejše različice poznajo le izdajo 1.x, ukaz deliver pa se z njimi prekine. |
packages.dotnet | besedilo | prazno | Zasebno izvajalno okolje .NET, ki ga izdaja prinese s seboj, podobno kot samostojna objava (self-contained): mapa z x86 in/ali x64, vsaka je namestitvena mapa .NET (dotnet.exe, host, shared z Microsoft.WindowsDesktop.App). Kopira se v deploy\dotnet\<bitness>. Pustite prazno, če imajo računalniki uporabnikov .NET že nameščen. |
packages.odbc | seznam | prazno | Gonilniki ODBC, ki jih izdaja prinese s seboj, vsak kot { "driver": "<name as in the connection texts>", "folder": "<folder with the driver's DLLs>" }, vsak gonilnik enkrat. Kopirajo se v deploy\odbc\<driver>. |
Poti paketov lahko vsebujejo spremenljivke okolja (%WKL_PACKAGES%) in so lahko relativne glede na mapo projekta, zato
ena datoteka služi vsem računalnikom, tudi če so paketi na njih v različnih mapah. Neznane vnose SDK zavrne; ko
datoteko zapiše sam, privzete vrednosti izpusti.
Profili izdaje (oblika 2)
V obliki 2 ("format": 2) datoteka delivery-settings.json vsebuje le tisto, kar je skupno vsem ciljem (version,
publisher, supportEnd, requirePublisher, packages), seznama targets pa nima. Vsak cilj je samostojna datoteka
delivery\<name>.profile.json, podobno kot profil za objavo v Visual Studiu; deliver in dodatek profile obdelata po
abecednem vrstnem redu njihovih imen.
{
"format": 1,
"configuration": "StrankaA",
"starterName": "stranke.exe"
}
| Vnos | Tip | Privzeto | Opis |
|---|---|---|---|
format | število | obvezno | 1, oblika datoteke profila. Višjo številko SDK zavrne. |
configuration | besedilo | obvezno | Konfiguracija gradnje iz projektne datoteke, v kateri se profil zgradi (projektna datoteka). Njen AppMode je način izdaje; konfiguracijo, ki načina ne določa, SDK zavrne. Njen ConnectionProfile poveže tabele. |
runtime | da/ne | true za Production, sicer false | Kot targets[].runtime. |
starter | besedilo | delivery/<name>.bootstrapper.json | Kot targets[].starter. |
output | besedilo | build\Delivery\<name> | Kot targets[].output. |
starterName | besedilo | Wkl.Bootstrapper.exe | Kot targets[].starterName. |
bitness | besedilo | prazno | Kot targets[].bitness. |
- Ime profila je ime njegove datoteke: črke, števke, presledki in
- _ ., največ 64 znakov, brez presledka ali pike na začetku ali koncu in brez imena naprave v sistemu Windows (CON,NUL…).deliver -p <name>pripravi izdajo za en sam profil. - Več profilov lahko izdaja isti način, na primer po en profil za vsako stranko, vsak s svojo konfiguracijo (profilom povezave) in svojo mapo. Ali se izda ACCDE, je kot v obliki 1 odvisno od načina: za Development se izda ACCDB;
Accdev konfiguraciji tega ne spremeni. - Oblika 1 ostaja veljavna. Njeni cilji se preberejo kot profili z imenom svojega načina in se zgradijo v konfiguraciji z enakim imenom, če jo projektna datoteka ima, sicer z nastavitvami projekta; način je način cilja. SDK datoteke v obliki 1 sam ne pretvori v obliko 2; Lastnosti projekta v dodatku zapišejo obliko 2, ko izdajo tam spremenite (uporaba dodatka za Access).
Opombe
- Katere knjižnice so del izdaje, SDK razbere iz sklicev projekta (
source\references.json) po GUID njihove knjižnice tipov: WKL Forms Object Library in WKL Office JSON. Sklici na Access, DAO, VBA ali Office spadajo k programu Access in niso del izdaje. - SDK paket preveri, še preden kar koli zgradi: vsebovati mora 32- in 64-bitno različico (
x86\<dll>,x64\<dll>), njegova različica (izx86\registration.json, sicer iz imena mape) pa ne sme biti starejša od sklica. Rezultat pokažewkl-office deliver --dependencies. - Izvajalnega okolja in gonilnikov SDK ne razbere iz izvornih datotek: ne more vedeti, ali imajo računalniki uporabnikov .NET ali gonilnik že nameščen, zato so del izdaje samo, če jih navaja
packages. Ko se projektna datoteka zaganjalnika zapiše iz predloge, se dodata predlogidotnetinodbc; predlogaodbcnavaja vzorčni gonilnik, ki ga razvijalec v programu Bootstrapper Manager nadomesti z gonilniki, navedenimi tukaj. - Mapo izdaje SDK izprazni samo, če jo je zapisala prejšnja izdaja (je prazna ali vsebuje
deploy\app-manifest.json). Vsako drugo mapo – na primer mapo v skupni rabi ali pomotoma mapo projekta – zavrne in je ne spremeni. bitness: anygradi dvakrat. Prva gradnja kodo prevede, da jo preveri; napaka pri prevajanju konča izdajo z izhodno kodo 4, enako kot pribuild. Druga gradnja naloži iste izvorne datoteke brez prevajanja; ta podatkovna zbirka se izda, zato ne vsebuje kode, prevedene v programu Access, ki gradi. Zagonske lastnosti dobi po izbranem načinu, enako kot ACCDE. Ker se izda ACCDB, je koda berljiva in jo je mogoče spremeniti; če to ni sprejemljivo, izdajte ACCDE posebej za 32- in za 64-bitni Office. Koda VBA mora delovati v obeh različicah (PtrSafeinLongPtrv stavkihDeclare).app-manifest.jsonnavaja"bitness": "any".- Ključ izdelka za vsak cilj: Production se izda pod imenom projekta, Administration pod imenom s pripono
Admin, Development s priponoDev. Kopije na uporabnikovem računalniku se zato nikoli ne prepišejo med seboj. Profili izdaje z istim načinom imajo isti ključ izdelka; izdajte jih na različne računalnike.
Primer kode
Izdaja samo za produkcijo, s paketi v mapi poleg projekta:
{
"format": 1,
"version": "2.0.0",
"targets": [ { "mode": "Production" } ],
"packages": {
"components": "..\\packages\\Wkl.Forms.ObjectLibrary\\2.0.0",
"bootstrapper": "..\\packages\\Wkl.Bootstrapper\\3.1.0"
}
}
Izdaja v mapo v skupni rabi, s preimenovanim zaganjalnikom, zasebnim izvajalnim okoljem .NET in gonilnikom OData:
{
"format": 1,
"version": "2.0.0",
"targets": [ { "mode": "Production", "output": "\\\\server\\apps\\Demo", "starterName": "demo.exe" } ],
"packages": {
"components": "..\\packages\\Wkl.Forms.ObjectLibrary\\2.0",
"bootstrapper": "..\\packages\\Wkl.Bootstrapper\\3.1.0",
"dotnet": "..\\packages\\dotnet-10",
"odbc": [ { "driver": "Wkl OData", "folder": "..\\packages\\WklOData" } ]
}
}
Izdaja za dve stranki v obliki 2, vsaka zgrajena v svoji konfiguraciji (delivery\delivery-settings.json, nato
delivery\Stranka A.profile.json in delivery\Stranka B.profile.json):
{
"format": 2,
"version": "2.0.0",
"packages": {
"components": "..\\packages\\Wkl.Forms.ObjectLibrary\\2.1.0",
"bootstrapper": "..\\packages\\Wkl.Bootstrapper\\3.1.0"
}
}
{ "format": 1, "configuration": "StrankaA", "output": "\\\\streznik-a\\apps\\Stranke" }
{ "format": 1, "configuration": "StrankaB", "output": "\\\\streznik-b\\apps\\Stranke" }
Konfiguraciji v projektni datoteki določata način in profil povezave za vsako stranko:
<PropertyGroup Condition="'$(Configuration)' == 'StrankaA'"> <Accde>true</Accde> <AppMode>Production</AppMode> <ConnectionProfile>PROD-A</ConnectionProfile> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' == 'StrankaB'"> <Accde>true</Accde> <AppMode>Production</AppMode> <ConnectionProfile>PROD-B</ConnectionProfile> </PropertyGroup>
Sorodne teme
- Projektna mapa – katera datoteka je kje in kaj je pod nadzorom različic
- Konfiguracije gradnje in profili izdaje – kaj določa konfiguracija in kaj profil