Oprette programrettelser for at forenkle løsningsopdateringer
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Hvis du tilføjer et objekt til en løsning og eksporterer løsningen, eksporteres objektet og alle dets relaterede aktiver i den pågældende løsning. Disse aktiver omfatter attributter, formularer, visninger, relationer, visualiseringer og andre aktiver, som er pakket med objektet. Hvis du eksporterer alle objekter, kan du utilsigtet ændre objekter på destinationsudrulningen eller overføre utilsigtede afhængigheder.
For at løse dette kan du oprette og udgive programrettelser til løsninger, der indeholder delkomponenter af enheder, i stedet for at udgive hele objektet, og alle dets aktiver. Den oprindelige løsning og en eller flere relaterede programrettelser kan blive samlet (flettet) på et senere tidspunkt i en opdateret version af den oprindelige løsning, som derefter kan erstatte den oprindelige løsning i Microsoft Dynamics 365-målorganisationen.
Programrettelser
Du kan anvende programrettelser til administrerede eller ikke-administrerede løsninger og kun medtage ændringer af objekter og relaterede objektaktiver. Programrettelser indeholder ikke ikke-tilpassede systemkomponenter eller relationer, som de er afhængige af, da disse komponenter allerede findes i den organisation, der er udrullet til. På et tidspunkt i din udviklingscyklus kan du akkumulere alle programrettelser til en ny løsningsversion, som erstatter den oprindelige løsning, som programrettelserne blev oprettet fra.
Programrettelser, der er gemt i Dynamics 365-database som Solution-objektposter. En ikke-null ParentSolutionId-attribut angiver, at løsningen er en programrettelse. Programrettelser kan oprettes og administreres via organisationstjenesten eller Web-API'erne, hvilket er nyttigt for udvikling af automatisering, f.eks et produktinstallations-script.Dynamics 365-webprogrammet indeholder imidlertid forskellige webformularer, som gør det muligt at oprette og administrere programrettelser interaktivt.
Programrettelser kan kun oprettes fra en overordnet løsning ved hjælp af CloneAsPatchRequest eller CloneAsPatch Action.
Den overordnede programrettelse kan ikke være en programrettelse.
Programrettelser kan kun have én overordnet løsning.
En programrettelse opretter en afhængighed (på løsningsniveau) på 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 det overordnede/underordnede-versionsnummer som identificeret af ParentSolutionId ikke stemmer overens med den overordnede løsning, der er installeret i målorganisationen.
En programrettelsesversion skal have det samme overordnede og underordnede nummer, 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.
Programrettelser understøtter de samme operationer som løsninger, f.eks. en yderligere opdatering, men ikke fjernelse. Du kan ikke fjerne komponenter fra en løsning ved hjælp af en programrettelse. Hvis du vil fjerne komponenter fra en løsning, skal du udføre en opgradering.
Programrettelser, der eksporteres som administrerede, skal importeres oven på en administreret overordnet løsning. Reglen er, at programrettelsesbeskyttelsen (administreret eller ikke-administreret) skal svare til den overordnede løsning.
Brug ikke ikke-administrerede programrettelser til produktionsformål.
Programrettelser understøttes kun i Dynamics 365-organisationer version 8.0 eller nyere.
Værktøjerne SolutionPackager og PackageDeployer i denne udgave understøtter programrettelser. Se værktøjets onlinehjælp for at få de kommandolinjeparametre, der er relateret til programrettelser.
Opret en programrettelse
Opret en programrettelse fra et ikke-administreret løsning i en organisation ved hjælp af meddelelsen CloneAsPatchRequest eller CloneAsPatch Action, eller ved hjælp af webprogrammet. Når du opretter programrettelsen, låses den oprindelige løsning, og du kan ikke ændre eller eksportere den, så længe der findes afhængige programrettelser i organisationen, der identificerer løsningen som den overordnede løsning. Programrettelses-versionsstyring svarer til løsnings-versionsstyring og angives i det følgende format: major.minor.build.release. Du kan ikke foretag ændringer af de eksisterende overordnede eller underordnede løsningsversioner, når du opretter en programrettelse.
Import og eksport af en programrettelse
Du kan bruge organisationstjenesten eller Web API'er, webprogrammet, eller Pakkeimplementationsværktøj til at eksportere og importere en programrettelse. De relevante organisationtjeneste-meddelelsesanmodninger er ImportSolutionRequest og ExportSolutionRequest. De relevante handlinger For Web-API'en er ImportSolution Action og ExportSolution Action.
Eksempler på programrettelse
Følgende tabel indeholder detaljer om et eksempel på programrettelse. Bemærk, at i dette eksempel importeres løsningen og programrettelserne i numerisk rækkefølge og er additive, hvilket er i overensstemmelse med løsningsimportering generelt.
Programrettelsens navn |
Beskrivelse |
---|---|
SolutionA, version 1.0 (ikke-administreret) |
Indeholder entityA med 6 felter. |
SolutionA, version 1.0.1.0 (ikke-administreret) |
Indeholder entityA med 6 felter (3 opdateret), og tilføjer entityB med 10 felter. |
SolutionA, version 1.0.2.0 (ikke-administreret) |
Indeholder entityC med 10 felter. |
Importprocessen er som følger.
Udvikleren eller tilpasseren importerer først basisløsningen (SolutionA 1.0) i organisationen. Resultatet er entityA med 6 felter i organisationen.
Derefter importeres SolutionA-programrettelse 1.0.1.0. Organisationen indeholder nu entityA med 6 felter (3 er blevet opdateret), samt entityB med 10 felter.
Til sidst importeres SolutionA-programrettelse 1.0.2.0. Organisationen indeholder nu entityA med 6 felter (3 er blevet opdateret), samt entityB med 10 felter, samt entityC med 10 felter.
Endnu et eksempel på programrettelse
Lad os se på endnu et eksempel på programrettelse, hvor detaljerne er angivet i den følgende tabel.
Programrettelsens navn |
Beskrivelse |
---|---|
SolutionA, version 1.0 (ikke-administreret, basisløsning) |
Indeholder Account-objektet, hvor længden af kontonummerfeltet justeres fra 20 til 30 tegn. |
SolutionB, version 2.0 (ikke-administreret, anden leverandør) |
Indeholder Account-objektet, hvor længden af kontonummerfeltet justeres til 50 tegn. |
SolutionA, version 1.0.1.0 (ikke-administreret, programrettelse) |
Indeholder en opdatering til Account-objektet, hvor længden af kontonummerfeltet justeres fra til 35 tegn. |
Importprocessen er som følger:
Udvikleren eller tilpasseren importerer først basisløsningen (SolutionA 1.0) i organisationen. Resultatet er et Account-objekt med et kontonummerfelt på 30 tegn.
SolutionB importeres. Organisationen indeholder nu et Account-objekt med et kontonummerfelt på 50 tegn.
SolutionA-programrettelse 1.0.1.0 importeres. Organisationen indeholder stadig et Account-objekt med et kontonummerfelt på 50 tegn som implementeret af SolutionB.
SolutionB afinstalleres. Organisationen indeholder nu et Account-objekt med et kontonummerfelt på 35 tegn som implementeret af programrettelsen SolutionA 1.0.1.0.
Slette en programrettelse
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 organisationen.
For en ikke-administreret 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.Dynamics 365-systemet afinstallerer automatisk programrettelserne i omvendt versionsrækkefølge, før basisløsningen afinstalleres. Du kan også blot afinstallere en enkelt programrettelse.
Opdater en løsning
Opdatering af en løsning omfatter akkumulering af (fletning) alle programrettelser til denne løsning i en ny version af løsningen. Bagefter oplåses løsningen og kan igen ændres (kun ikke-administrerede løsninger) eller eksporteres. For administrerede løsninger er ingen yderligere ændringer af løsningen tilladt undtagen for oprettelse programrettelser fra den nyligt opdaterede løsning. For at akkumulere programrettelser i en ikke-administreret løsning kan du bruge CloneAsSolutionRequest eller CloneAsSolution Action. Kloning af en løsning opretter en ny version af den ikke-administrerede løsning, som indeholder alle løsningens programrettelser, med et højere overordnet.underordnet-versionsnummer, samme entydige navn og et visningsnavn.
For en administreret løsning foregår tingene lidt anderledes. Du kloner først den ikke-administrerede løsning (A), som indeholder alle programrettelserne, og eksportere den derefter 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 DeleteAndPromote Action for at erstatte den administrerede løsning (A) og dens programrettelser med den opgraderede administrerede løsning (B), der har et højere versionsnummer.
Se også
TechNet: Brug segmenterede løsninger og programrettelser til at forenkle løsningsopdateringer
Plan for løsningsudvikling
Pakke- og distributionsudvidelser ved hjælp af løsninger
Meddelelser og metoder for løsningsobjektet
Vedligehold administrerede løsninger
Registrere din app med AppSource
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret