Opprett oppdateringspakker for å forenkle løsningsoppdateringer

Hvis du legger til en tabell i en løsning og eksporterer løsningen, eksporterer du tabellen og alle relaterte ressurser i den løsningen. Disse ressursene omfatter kolonner (attributter), skjemaer, visninger, relasjoner og visualiseringer, sammen med andre aktiva som er pakket med tabellen. Hvis du eksporterer alle objekter, kan du utilsiktet endre objekter på måldistribusjonen eller overføre utilsiktede avhengigheter.

Hvis du vil håndtere avhengigheter, oppretter og publiserer du løsningsoppdateringer som inneholder delkomponenter i tabeller i stedet for å publisere hele tabellen og alle tilhørende ressurser. Du kan rulle opp (slå sammen) den opprinnelige løsningen og én eller flere relaterte patcher senere til en oppdatert versjon av løsningen, som deretter kan erstatte den opprinnelige løsningen i målorganisasjonen for Microsoft Dataverse.

Patcher

Du kan bruke oppdateringspakker på enten administrerte eller uadministrerte løsninger og bare inkludere endringer for tabeller og relaterte tabellressurser. Oppdateringspakker inneholder ingen ikke-tilpassede systemkomponenter eller relasjoner de er avhengige av, fordi disse komponentene allerede finnes i organisasjonen det distribueres til. I løpet av utviklingssyklusen kan du samle alle oppdateringene i en ny løsningsversjon for å erstatte den opprinnelige løsningen som oppdateringene ble opprettet fra.

Dataverse-databasen lagrer patcher som Solution tabellposter. Et ParentSolutionId-attributt uten nullverdi angir at løsningen er en oppdateringspakke. Du kan opprette og administrere patcher gjennom SDK for .NET eller web-API-er, som er nyttige for utvikling av automatisering, for eksempel et produktinstallasjonsskript. Dataverse-webprogrammet inneholder imidlertid forskjellige webskjemaer som gjør det mulig å opprette og administrere patcher interaktivt.

  • Du kan bare opprette patcher fra en overordnet løsning ved hjelp av CloneAsPatchRequest eller CloneAsPatch Action.
  • Overordnet patch kan ikke være en patch.
  • Patcher kan bare ha én overordnet løsning.
  • En oppdateringspakke oppretter en avhengighet, på løsningsnivået, på den overordnede løsningen.
  • Du kan bare installere en oppdateringspakke hvis den overordnede løsningspakken finnes.
  • Du kan ikke installere en oppdatering med mindre det unike navnet og hoved- eller delversjonsnummeret for den overordnede løsningen, som identifisert av ParentSolutionId, ikke samsvarer med den overordnede løsningen som er installert i målorganisasjonen.
  • En patchversjon må ha samme nummer for hovedversjon og minor-versjonsnummer, men et høyere build- og utgivelsesnummer enn versjonsnummeret for den overordnede løsningen. Visningsnavnet kan være ulikt.
  • Hvis en løsning har patcher, må påfølgende patcher ha et numerisk høyere versjonsnummer enn eventuelle eksisterende patcher for den løsningen.
  • Patcher støtter de samme operasjonene som løsninger, for eksempel additiv oppdatering, men ikke fjerning. Du kan ikke fjerne komponenter fra en løsning ved hjelp av en oppdateringspakke. For å fjerne komponenter fra en løsning, utfør en oppgradering.
  • Du må importere patcher eksportert som administrert oppå en administrert overordnet løsning. Regelen er at patchbeskyttelse (administrert eller uadministrert) må samsvare med sin overordnede.
  • Ikke bruk uadministrerte patcher til produksjonsformål.

SolutionPackager- og PackageDeployer-verktøyene støtter løsningspatcher. Se i den elektroniske hjelpen for verktøyet etter eventuelle kommandolinjealternativer som er relatert til patcher.

Opprett en patch

Opprett en oppdatering fra en uadministrert løsning i et miljø ved å bruke CloneAsPatchRequest-meldingen eller CloneAsPatch-handlingen, eller ved å bruke nettprogrammet. Når du oppretter patchen, låser du den opprinnelige løsningen og kan ikke endre eller eksportere den så lenge det finnes avhengige patcher i miljøet som identifiserer løsningen som den overordnede løsningen. Patchversjonering ligner på løsningsversjonering og er angitt i følgende format: major.minor.build.release. Du kan ikke endre eksisterende hoved- eller underordnede løsningsversjoner når du oppretter en oppdateringstype patch.

Eksportere og importere en oppdatering

Bruk SDK for .NET eller nett-API-ene, webprogrammet eller Package Deployer-verktøyet til å eksportere og importere en oppdateringspakke. Den relevante SDK-en for .NET-forespørselsklasser er ImportSolutionRequest og ExportSolutionRequest. De relevante handlingene for web-API-en er ImportSolution Action og ExportSolution Action.

Patchingeksempler

Følgende tabell viser detaljene for et oppdateringseksempel. I dette eksemplet importerer du løsningen og oppdateringene i numerisk rekkefølge og er additive, som er i samsvar med løsningsimport generelt.

Navn på oppdatering Beskrivelse
SolutionA, versjon 1.0 (uadministrert) Inneholder entityA med seks felter.
SolutionA, versjon 1.0.1.0 (uadministrert) Inneholder entityA med seks felter (tre oppdatert), og legger til entityB med 10 felter.
SolutionA, versjon 1.0.2.0 (uadministrert) Inneholder entityC med 10 felter.

Importprosessen er som følger.

  1. Utvikleren eller tilpasseren importerer først basisløsningen (SolutionA 1.0) inn i miljøet. Resultatet er entityA med seks felter i miljøet.
  2. Deretter importerer du SolutionA oppdateringen 1.0.1.0. Miljøet inneholder nå entityA med seks felt (tre oppdaterte), pluss entityB med 10 felt.
  3. Til slutt importerer du SolutionA patch 1.0.2.0. Miljøet inneholder nå entityA med seks felter (tre oppdatert), entityB med 10 felter pluss entityC med 10 felter.

Et annet eksempel på oppdatering

La oss se på et annet eksempel på patching. Tabellen nedenfor viser detaljene.

Navn på oppdatering Beskrivelse
SolutionA, versjon 1.0 (uadministrert, basisløsning) Inneholder Account-tabellen der lengden på kontonummerkolonnen er justert fra 20 til 30 tegn.
SolutionB, versjon 2.0 (uadministrert, annen leverandør) Inneholder Account-tabellen, der lengden på kolonnen for kontonummer er justert til 50 tegn.
SolutionA, versjon 1.0.1.0 (uadministrert, oppdateringspakke) Inneholder en oppdatering til Account-tabellen, der lengden på kolonnen for kontonummeret er justert til 35 tegn.

Importprosessen er som følger:

  1. Utvikleren eller tilpasseren importerer først basisløsningen (SolutionA 1.0) inn i miljøet. Resultatet er en Account-tabell med en kolonne for kontonummer på 30 tegn.
  2. Importer SolutionB. Miljøet inneholder nå en Account-tabell med en kontonummerkolonne på 50 tegn.
  3. Importer oppdatering SolutionA 1.0.1.0. Miljøet inneholder fremdeles en Account-tabell med en kolonne for kontonummer på 50 tegn, som brukt av SolutionB.
  4. Avinstaller SolutionB. Miljøet inneholder nå en Account-tabell med en kolonne for kontonummer på 35 tegn, som brukt av SolutionA 1.0.1.0-oppdateringen.

Slett en patch

Du kan slette en oppdaterings- eller basisløsning (overordnet) ved hjelp av DeleteRequest eller, for Web-APIen, ved å bruke HTTP DELETE-metoden. Sletteprosessen er forskjellig for en administrert eller uadministrert løsning som har én eller flere eksisterende oppdateringer i miljøet.

For en uadministrert løsning må du først avinstallere alle oppdateringer til basisløsningen, i motsatt versjonsrekkefølge av den de ble opprettet i, før du avinstallerer basisløsningen.

For en forvaltet løsning avinstallerer du bare basisløsningen. Dataverse-systemet avinstallerer automatisk oppdateringene i motsatt versjonsrekkefølge før basisløsningen avinstalleres. Du kan også bare avinstallere én enkelt oppdatering.

Oppdater en løsning

Oppdatering av en løsning innebærer å slå sammen alle patcher til løsningen i en ny versjon av løsningen. Etterpå blir løsningen ulåst og kan nok en gang endres (ikke-administrert løsning) eller eksporteres. Hvis du har en administrert løsning, er det ikke tillatt med flere endringer av løsningen, bortsett fra når du oppretter rettelser (patcher) fra den nylig oppdaterte løsningen. Hvis du vil rulle opp oppdateringer til en uadministrert løsning, kan du bruke CloneAsSolutionRequest eller handlingen CloneAsSolution. Når du kloner en løsning, opprettes en ny versjon av den uadministrerte løsningen, noe som inkluderer alle patchene, med et høyere major.minor-versjonsnummer, samme unike navn og et visningsnavn.

For en administrert løsning håndteres ting litt annerledes. Først kloner du den ikke-administrerte løsningen (A), som omfatter alle oppdateringene, og deretter eksporterer du den som en administrert løsning (B). I målorganisasjonen som inneholder den administrerte versjonen av (A)-løsningen og tilhørende oppdateringer, importerer du den administrerte løsningen (B) og deretter kjører DeleteAndPromoteRequest eller DeleteAndPromote-handlingen for å erstatte den administrerte løsningen (A) og de tilhørende oppdateringene med den oppgraderte administrerte løsning (B) som har et høyere versjonsnummer.

Se også

Bruk segmenterte løsninger