Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Hvis du føjer en tabel til en løsning og eksporterer løsningen, eksporterer du tabellen og alle relaterede aktiver i den pågældende løsning. Disse aktiver omfatter kolonner (attributter), formularer, visninger, relationer og visualiseringer sammen med andre aktiver, der er pakket sammen med tabellen. Eksport af alle objekter betyder, at du utilsigtet kan ændre objekter i destinationsinstallationen eller overføre utilsigtede afhængigheder.
Hvis du vil håndtere afhængigheder, skal du oprette og publicere løsningsrettelser, der indeholder underkomponenter i tabeller, i stedet for at publicere hele tabellen og alle dens ressourcer. Du kan samle (flette) den oprindelige løsning og en eller flere relaterede programrettelser på et senere tidspunkt til en opdateret version af løsningen, som derefter kan erstatte den oprindelige løsning i mål-Microsoft Dataverse-organisationen.
Programrettelser
Du kan anvende patches til administrerede eller ikke-administrerede løsninger og kun medtage ændringer af tabeller og relaterede tabelaktiver. Programrettelser indeholder ingen ikke-brugerdefinerede systemkomponenter eller -relationer, som de er afhængige af, fordi disse komponenter allerede findes i den organisation, der udrulles til. På et tidspunkt i din udviklingscyklus kan du samle alle programrettelserne i en ny løsningsversion, som erstatter den oprindelige løsning, som programrettelserne blev oprettet fra.
I Dataverse-databasen gemmes programrettelser som Solution tabelposter. En ikke-null ParentSolutionId-attribut angiver, at løsningen er en programrettelse. Du kan oprette og administrere patcher via SDK'et for .NET eller web-API'er, som er nyttige til udvikling af automatisering, f.eks. et script til produktinstallation. Dataverse-webprogrammet indeholder imidlertid forskellige webformularer, som gør det muligt at oprette og administrere patches interaktivt.
- Du kan kun oprette programrettelser fra en overordnet løsning ved hjælp af CloneAsPatchRequest eller handlingen CloneAsPatch.
- Den overordnede patch kan ikke være en patch.
- Programrettelser kan kun have én overordnet løsning.
- En patch opretter en afhængighed på løsningsniveau af den overordnede løsning.
- Du kan kun installere en programrettelse, hvis den overordnede løsning er til stede.
- Du kan ikke installere en programrettelse, medmindre den overordnede løsnings entydige navn og hoved- eller underversionsnummer, som identificeret af
ParentSolutionId, ikke stemmer overens med dem for den overordnede løsning, der er installeret i målorganisationen. - En patchversion skal have det samme major- og minornummer, men et højere build- og versionsnummer end den overordnede løsnings versionsnummer. Det viste navn kan være forskelligt.
- Hvis en løsning indeholder programrettelser, skal efterfølgende programrettelser have et numerisk højere versionsnummer end nogen eksisterende programrettelse til denne løsning.
- Patches understøtter de samme operationer som løsninger, f.eks. en additiv opdatering, men ikke fjernelse. Du kan ikke fjerne komponenter fra en løsning ved hjælp af en patch. Hvis du vil fjerne komponenter fra en løsning, skal du udføre en opgradering.
- Du skal importere patches, der er eksporteret som administrerede, oven på en administreret overordnet løsning. Reglen er, at programrettelsesbeskyttelsen (administreret eller ikke-administreret) skal svare til dets overordnede element.
- Brug ikke ikke-administrerede patches til produktionsformål.
Værktøjerne SolutionPackager og PackageDeployer understøtter løsningspatches. Se værktøjets onlinehjælp for eventuelle kommandolinjeparametre, der er relateret til patches.
Opret en patch
Opret en patch fra en ikke-administreret løsning i et miljø ved hjælp af meddelelsen CloneAsPatchRequest eller CloneAsPatch Action, eller ved hjælp af webprogrammet. Når du opretter patchen, låser du den oprindelige løsning og kan ikke ændre eller eksportere den, så længe der findes afhængige patches i miljøet, som identificerer løsningen som den overordnede løsning. Patchversionsstyring svarer til løsningsversionsstyring og angives i følgende format: major.minor.build.release. Du kan ikke ændre de eksisterende hoved- eller underversioner af løsningen, når du opretter en programrettelse.
Eksporter og importer en patch
Brug SDK til .NET eller Web API'er, webprogrammet eller Package Deployer-værktøjet til at eksportere og importere en patch. De relevante SDK'er for .NET-anmodningsklasser er ImportSolutionRequest og ExportSolutionRequest. De relevante handlinger for web-API'en er ImportSolution Action og ExportSolution Action.
Eksempler på patching
Følgende tabel indeholder detaljer om et eksempel på programrettelse. I dette eksempel importerer du løsningen og programrettelserne i numerisk rækkefølge, og importerne er kumulative, hvilket er i overensstemmelse med import af løsninger generelt.
| Patchnavn | Beskrivelse |
|---|---|
SolutionA, version 1.0 (uadministreret) |
Indeholder entityA med seks felter. |
SolutionA, version 1.0.1.0 (uhåndteret) |
Indeholder entityA med seks felter (tre opdateret), og tilføjer entityB med 10 felter. |
SolutionA, version 1.0.2.0 (uadministreret) |
Indeholder entityC med 10 felter. |
Importprocessen er som følger.
- Udvikleren eller tilpasseren importerer først basisløsningen (
SolutionA1.0) til miljøet. Resultatet erentityAmed seks felter i miljøet. - Importér derefter programrettelsen
SolutionA1.0.1.0. Miljøet indeholder nuentityAmed seks felter (tre opdateret) plusentityBmed 10 felter. - Til sidst skal du importere programrettelsen
SolutionA1.0.2.0. Miljøet indeholder nuentityAmed seks felter (tre er blevet opdateret),entityBmed 10 felter plusentityCmed 10 felter.
Endnu et eksempel på patching
Lad os se på et andet eksempel på programrettelser. I følgende tabel vises detaljerne.
| Patchnavn | Beskrivelse |
|---|---|
SolutionA, version 1.0 (ikke-administreret, basisløsning) |
Indeholder Account-tabellen, hvor længden af kontonummerkolonnen justeres fra 20 til 30 tegn. |
SolutionB, version 2.0 (uadministreret, anden leverandør) |
Indeholder Account-tabel, hvor længden af kontonummerkolonnen justeres til 50 tegn. |
SolutionA, version 1.0.1.0 (ikke-administreret, patch) |
Indeholder en opdatering til Account-tabellen, hvor længden af kontonummerkolonnen justeres til 35 tegn. |
Importprocessen er som følger:
- Udvikleren eller tilpasseren importerer først basisløsningen (
SolutionA1.0) til miljøet. Resultatet er enAccount-tabel med en kolonne med kontonummer på 30 tegn. - Importér
SolutionB. Miljøet indeholder nu enAccount-tabel med en kontonummerkolonne på 50 tegn. - Importér
SolutionApatch 1.0.1.0. Miljøet indeholder stadig enAccount-tabel med en kontonummerkolonne på 50 tegn som implementeret afSolutionB. - Fjern
SolutionB. Miljøet indeholder nu enAccount-tabel med en kontonummerkolonne på 35 tegn som implementeret af programrettelsenSolutionA1.0.1.0.
Slet en patch
Du kan slette en programrettelse eller (overordnet) basisløsning ved hjælp af DeleteRequest eller, for Web-API'en, bruge metoden HTTP DELETE. Sletningsprocessen er forskellig for en administreret eller ikke-administreret løsning, der har en eller flere programrettelser i miljøet.
For en uadministreret løsning skal du først fjerne alle programrettelser for basisløsningen i omvendt versionsrækkefølge i forhold til den, de blev oprettet i, før du afinstallerer basisløsningen.
For en administreret løsning kan du ganske enkelt fjerne basisløsningen. Dataverse-systemet afinstallerer automatisk programrettelserne i omvendt versionsrækkefølge, før systemet afinstallerer basisløsningen. Du kan også blot afinstallere en enkelt programrettelse.
Opdater en løsning
Opdatering af en løsning omfatter fletning af alle rettelser til den pågældende løsning i en ny version af løsningen. Bagefter oplåses den pågældende løsning og kan igen ændres (kun ikke-administrerede løsninger) eller eksporteres. For administrerede løsninger er yderligere ændringer af løsningen ikke tilladt undtagen oprettelse af programrettelser fra den nyligt opdaterede løsning. Hvis du vil samle rettelser i en ikke-administreret løsning, skal du bruge CloneAsSolutionRequest eller handlingen CloneAsSolution. Kloning af en løsning opretter en ny version af den ikke-administrerede løsning, som indeholder alle løsningens patches, med et højere major.minor-versionsnummer, samme entydige navn og et visningsnavn.
For en administreret løsning håndteres tingene lidt anderledes. Du skal først klone den ikke-administreret løsning (A), inkorporere alle dens patches og derefter eksportere den som en administreret løsning (B). I målorganisationen, der indeholder den administrerede version af løsning (A) og dens programrettelser, importerer du den administrerede løsning (B) og udfører derefter DeleteAndPromoteRequest eller handlingen DeleteAndPromote for at erstatte den administrerede løsning (A) og dens programrettelser med den opgraderede administrerede løsning (B), der har et højere versionsnummer.