Jaa


SolutionPackager-työkalu

SolutionPackager on työkalu, jolla voit hajottaa palautuvasti Microsoft Dataverse pakatun ratkaisutiedoston useiksi XML-tiedostoiksi ja muiksi tiedostoiksi. Tämän jälkeen näitä tiedostoja on helppo hallita lähdehallintajärjestelmän avulla. Seuraavissa osissa näytetään, miten työkalu suoritetaan ja miten työkalua käytetään hallittujen ja hallitsemattomien ratkaisujen kanssa.

Tärkeää

SolutionPackager-työkalu ei ole enää suositeltava tapa purkaa ja paketoida ratkaisuja. SolutionPackager-työkalun ominaisuudet sisältyvät Power Platformin komentorivikäyttöliittymään. Komennossa pac solution on useita verbejä, kuten unpack, pack, cloneja sync , jotka sisältävät samat pohjana olevat SolutionPackager-työkalun ominaisuudet.

Tietoja SolutionPackager-työkalun löytämiseen

SolutionPackager-työkalu jaetaan osana Microsoft. CrmSdk.CoreTools NuGet-paketti. Voit asentaa ohjelman alla mainittujen vaiheiden avulla.

  1. Lataa NuGet-paketti.
  2. Anna paketin tiedostonimen tunnisteelle .nupkg uusi tunniste .zip.
  3. Pura pakatun (zip) tiedoston sisältö.

Etsi suoritettava SolutionPackager.exe-tiedosto <puretun-kansion-nimi>/bin/coretools-kansiosta. Suorita ohjelma coretools-kansiosta tai lisää se PATH-kansioon.

SolutionPackagerin komentoriviargumentit

SolutionPackager on komentorivityökalu, joka voidaan käynnistää seuraavassa taulukossa esitetyillä parametreilla.

Argumentti Description
/action: {Poista|Pakkaa} Pakollinen. Suoritettava toiminto. Toiminto voi joko purkaa ratkaisun .zip-tiedoston kansioon tai pakata kansion .zip-tiedostoksi.
/zipfile: <tiedostopolku> Pakollinen. Ratkaisun .zip-tiedoston polku ja nimi. Purettaessa tiedoston on oltava olemassa ja luettavissa. Pakattaessa tiedosto korvataan.
/folder: <kansion polku> Pakollinen. Kansion polku. Purettaessa tämä kansio luodaan ja täytetään komponenttitiedostoilla. Pakattaessa tämän kansion on oltava jo olemassa ja sisällettävä aiemmin purettuja komponenttitiedostoja.
/packagetype: {Hallitsematon|Hallittu|Molemmat} Valinnainen. Käsiteltävän paketin tyyppi. Oletusarvona on Hallitsematon. Tämä argumentti voidaan jättää pois useimmissa tapauksissa, koska pakettityyppi voidaan lukea .zip-tiedostosta tai komponenttitiedostoista. Kun purettaessa on määritetty Molemmat, hallitun ja hallitsemattoman ratkaisun .zip-tiedostojen on oltava käytettävissä, ja ne käsitellään yhdessä kansiossa. Kun purettaessa on määritetty Molemmat, hallitun ja hallitsemattoman ratkaisun .zip-tiedostot luodaan yhdestä kansiosta. Lisätietoja on myöhemmin tässä artikkelissa hallittujen ja hallitsemattomien ratkaisujen käyttöä koskevassa osassa.
/allowWrite:{Yes|No} Valinnainen. Oletusarvo on Kyllä. Tätä argumenttia käytetään vain purkamisen aikana. Kun määrityksenä on /allowWrite:No, työkalu suorittaa kaikki toiminnot, mutta se ei voi kirjoittaa tai poistaa tiedostoja. Purkutoimintoa voidaan arvioida turvallisesti korvaamatta tai poistamatta mitään olemassa olevia tiedostoja.
/allowDelete:{Yes|No|Prompt} Valinnainen. Oletusarvona on Prompt. Tätä argumenttia käytetään vain purkamisen aikana. Kun määrityksenä on /allowDelete:Yes, kaikki parametrissa /folder määritetyssä kansiossa olevat odottamattomat tiedostot poistetaan automaattisesti. Kun määrityksenä on /allowDelete:No, mitään ei poisteta. Kun määrityksenä on /allowDelete:Prompt, konsoli pyytää käyttäjää hyväksymään tai hylkäämään jokaisen poistotoiminnon. Jos määrityksenä on /allowWrite:No, poistamista ei tapahdu, vaikka määrityksenä olisi myös /allowDelete:Yes.
/clobber Valinnainen. Tätä argumenttia käytetään vain purkamisen aikana. Kun /clobber on määritetty, tiedostot, joilla on vain luku -määritejoukko, korvataan tai poistetaan. Kun tätä ei määritetä, tiedostoja, joilla on vain luku -määrite, ei korvata tai poisteta.
/errorlevel: {Off|Virhe|Varoitus|Tiedot|Yksityiskohtainen} Valinnainen. Oletusarvona on Info. Tämä argumentti ilmaisee tulosteena olevien kirjaustietojen tason.
/map: <tiedostopolku> Valinnainen. Polku ja yhdistämismäärityksen direktiivit sisältävän .xml-tiedoston nimi. Käytettäessä tiedostoja purkamisen yhteydessä, yleensä /folder-parametrin mukaisesta kansiosta luettavat tiedostot luetaan yhdistämismäärityksen tiedoston mukaisista vaihtoehtoisista sijainneista. Pakettitoiminnon aikana direktiivejä vastaavia tiedostoja ei kirjoiteta.
/nologo Valinnainen. Piilota palkki suorituksen aikana.
/log: <tiedostopolku> Valinnainen. Lokitiedoston polku ja nimi. Jos tiedosto on jo olemassa, uudet lokitiedot liitetään tiedostoon.
@ <tiedostopolku> Valinnainen. Sen tiedoston polku ja nimi, joka sisältää työkalun komentoriviargumentteja.
/sourceLoc: <merkkijono> Valinnainen. Tämä argumentti luo malliresurssitiedoston ja on kelvollinen vain purkamisen yhteydessä.

Mahdolliset arvot ovat auto tai LCID-/ISO-koodi kielelle, jonka haluat viedä. Kun tätä argumenttia käytetään, määritetyn kielialueen merkkijonoresurssit puretaan neutraalina .resx-tiedostona. Jos määritettynä on auto tai vain kytkimen pitkä tai lyhyt muoto on määritetty, käytetään peruskielialuetta tai ratkaisua. Voit käyttää komennon lyhyttä muotoa: /src.
/localize Valinnainen. Pura tai yhdistä kaikki merkkijonoresurssit .resx-tiedostoihin. Voit käyttää komennon lyhyttä muotoa: /loc. Lokalisointivaihtoehto tukee .resx-tiedostojen jaettuja komponentteja. Lisätietoja: RESX-verkkoresurssin käyttäminen
/SolutionName: <nimi> Valinnainen. Pakattavan tai poimittavan ratkaisun yksilöivä nimi, kun lähdekansio sisältää useita ratkaisuja kohdassa solutions/*/solution.yml. Pakollinen, kun tunnistetaan useampi kuin yksi ratkaisu. Koskee vain YAML-lähteen ohjausobjektin muotoa. Voit käyttää komennon lyhyttä muotoa: /sn.
/remapPluginTypeNames Valinnainen. Kun määritys on määritetty, laajennuksen täydelliset tyyppinimet yhdistetään uudelleen ratkaisuun sisältyvien kokoonpanojen perusteella. Oletusarvoisesti käytössä YAML-lähteen ohjausobjektimuodossa. Voit käyttää komennon lyhyttä muotoa: /fp.

Lähteen hallinnan tiedostomuodot

SolutionPackager tukee kahta kansioasettelua ratkaisujen poimimiseen ja pakkaamiseen.

XML-muoto (vanha)

Alkuperäinen muoto. Ratkaisun metatiedot tallennetaan kohteeseen Other\Solution.xml ja Other\Customizations.xml, ja kaikki osatiedostot puretaan tietuekansiohierarkiaan näiden tiedostojen rinnalla. Tämä muoto on oletusmuoto, kun tiedosto puretaan .zip ilman lisämäärityksiä.

YAML-lähteen ohjausobjektin muoto

Dataverse Git -integroinnin rinnalla tämä muoto tallentaa ratkaisun metatiedot YAML-tiedostoina, jotka on jaettu jäsennettyyn kansiohierarkiaan. Tämä muoto kirjoitetaan, kun teet ratkaisuja käyttäen alkuperäistä Git-integrointia Power Apps.

XML-muotoa enemmän etuja

  • Tuottaa siistimpiä, helpommin luettavissa olevia komponenttikohtaisia eroavia lähdeohjausobjektissa
  • Tukee useita ratkaisuja yhdessä säilökansiossa
  • Kangassovellusten .msapp tiedostoja ja moderneja virtoja tuetaan vain tässä muodossa.
  • Laajennuksen tyypin nimen uudelleenyhteennys on oletusarvoisesti käytössä

Pakollinen kansiorakenne

<rootFolder>/
├── solutions/
│   └── <SolutionUniqueName>/
│       ├── solution.yml              (solution metadata)
│       ├── solutioncomponents.yml    (paths to all component files)
│       ├── rootcomponents.yml        (root-level components)
│       └── missingdependencies.yml   (dependency info)
├── publishers/
│   └── <PublisherUniqueName>/
│       └── publisher.yml             (publisher definition)
├── entities/                         (entity components, if present)
├── workflows/                        (classic workflows, if present)
├── modernflows/                      (Power Automate cloud flows, if present)
├── canvasapps/                       (canvas app .msapp files, if present)
└── [other component folders]/

Tärkeää

YAML-muoto havaitaan automaattisesti tiedostoja sisältävän solutions/ alikansion *solution.yml avulla. Jos YAML-luettelotiedostot (solution.yml, solutioncomponents.ymlja niin edelleen) sijoitetaan kansion pääkansioon alle :n asemesta solutions/<SolutionUniqueName>/, työkalu ei tunnista YAML-muotoa. Työkalu palaa XML-polkuun ja ilmoittaa harhaanjohtavasta virheestä, joka koski puuttuvaa -tiedostoa Customizations.xml. Lisätietoja tämän ongelman korjaamisesta on kohdassa Vianmääritys .

Lisätietoja: Ratkaisun YAML-lähteen hallinnan muotoviittaus

Automaattisen tunnistuksen sääntöjen muotoileminen

Ehto Käytetty muoto
solutions/*/solution.yml found – täsmälleen yksi ratkaisu YAML-muoto, jossa ratkaisun nimi päätellään kansiosta
solutions/*/solution.yml löydetään – useita ratkaisuja YAML-muoto, jossa /SolutionName argumentti on pakollinen
Ei solutions/ alihakemistoa käytettävissä XML-muoto (vanha)

YAML-muotokansion pakkaaminen

Seuraava komento pakkaa YAML-muotoisen kansion.

SolutionPackager.exe /action:Pack /zipfile:MySolution.zip /folder:C:\repos\myrepo

Pakkaaminen usean ratkaisun kansiosta

Seuraava komentopaketti pakkaa määritetyn ratkaisun usean ratkaisun kansioon.

SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA

Käytä komentoargumenttia /map

Seuraavassa keskustelussa on tietoja /map-argumentin käyttämisestä SolutionPackager-työkalussa.

Automatisoidussa koontijärjestelmässä koottuja tiedostoja, kuten Silverlightin .xap-tiedostoja ja laajennuskokoonpaja, ei yleensä kuitata lähdevalvonnassa. Lähteenvalvonnassa voi olla jo verkkoresursseja sellaisissa paikoissa, jotka eivät ole suoraan yhteensopivia SolutionPackager-työkalun kanssa. Sisällyttämällä /map-parametrin SolutionPackager-työkalu voidaan ohjata lukemaan ja pakkaamaan tällaisia tiedostoja vaihtoehtoisista sijainneista eikä purkukansiosta, kuten yleensä. Yhdistämismäärityksen direktiivit sisältävän XML-tiedoston nimi ja polku on määritettävä /map-parametrissa. Nämä direktiivit ohjaavat SolutionPackager-työkalun yhdistämään tiedostot nimen ja polun mukaan ja osoittamaan vaihtoehtoisen sijainnin yhdistetyn tiedoston löytämiseksi. Seuraavat tiedot koskevat kaikkia direktiivejä tasavertaisesti.

  • Luettelossa voi olla useita direktiivejä, mukaan lukien ne, jotka yhdistävät identtisiä tiedostoja. Tiedoston alussa luetellut direktiivit ovat ensisijaisia myöhemmin lueteltuihin direktiiveihin nähden.

  • Jos tiedosto vastaa jotakin direktiiviä, sen on löydyttävä vähintään yhdestä vaihtoehtoisesta sijainnista. Jos vastaavia vaihtoehtoja ei löydy, SolutionPackager antaa virheen.

  • Kansio ja tiedostopolut voivat olla absoluuttisia tai suhteellisia. Suhteelliset polut arvioidaan aina /folder-parametrin määrittämästä kansiosta käsin.

  • Ympäristömuuttujat voidaan määrittää %variable%-syntaksin avulla.

  • Kansion yleismerkkiä "**" voidaan käyttää tarkoittamaan "missä tahansa alikansiossa". Sitä voidaan käyttää vain polun viimeisenä osana, esimerkiksi "c:\folderA\**".

  • Tiedostonimen yleismerkkejä voidaan käyttää vain lomakkeissa "*.ext" tai "*.*". Muita malleja ei tueta.

    Tässä on kuvattu kolmentyyppisiä direktiivien yhdistämismäärityksiä sekä esimerkki, jossa kerrotaan, miten niitä käytetään.

Kansioiden kartoitus

Alla on yksityiskohtaisia tietoja kansioiden yhdistämismäärityksestä.

Xml-muoto

<Folder map="folderA" to="folderB" />

Description

Kansiota "folderA" vastaavat tiedostopolut vaihdetaan kansioon "folderB".

  • Näiden alikansioiden hierarkioiden on oltava identtiset.

  • Kansion yleismerkkejä ei tueta.

  • Tiedostonimiä ei voi määrittää.

    Esimerkit

    <Folder map="folderA" to="folderB" />  
    <Folder map="folderA\folderB" to="..\..\folderC\" />  
    <Folder map="WebResources\subFolder" to="%base%\WebResources" />  
    

Tiedostojen välinen yhdistämismääritys

Seuraavassa annetaan yksityiskohtaisia tietoja tiedostojen välisestä yhdistämismäärityksestä.

Xml-muoto

<FileToFile map="path\filename.ext" to="path\filename.ext" />

Description

Kaikki map-parametria vastaavat tiedostot luetaan to-parametrissa määritetystä nimestä ja polusta.

map-parametrin osalta:

  • Tiedoston nimi on määritettävä. Polku on valinnainen. Jos polkua ei määritetä, voidaan yhdistää missä tahansa kansiossa olevia tiedostoja.

  • Tiedostonimen yleismerkkejä ei tueta.

  • Kansion yleismerkkiä tuetaan.

    to-parametrin osalta:

  • Tiedoston nimi ja polku on määritettävä.

  • Tiedoston nimi voi poiketa map-parametrissa olevasta nimestä.

  • Tiedostonimen yleismerkkejä ei tueta.

  • Kansion yleismerkkiä tuetaan.

Esimerkit

  <FileToFile map="assembly.dll" to="c:\path\folder\assembly.dll" />  
  <FileToFile map="PluginAssemblies\**\this.dll" to="..\..\Plugins\**\that.dll" />  
  <FileToFile map="Webresrouces\ardvark.jpg" to="%SRCBASE%\CrmPackage\WebResources\JPG format\aardvark.jpg" />  
  <FileToFile
    map="pluginpackages\cr886_PluginPackageTest\package\cr886_PluginPackageTest.nupkg"
    to="myplg\bin\Debug\myplg.1.0.0.nupkg" /> 

Edellä olevassa NuGet-pakettiesimerkissä cr886_PluginPackageTest.nupkg-tiedostoa ei korvata, jos tiedosto on jo määritetyssä sijainnissa.

Tiedostopolun määrittäminen

Seuraavassa annetaan yksityiskohtaisia tietoja tiedoston ja polun yhdistämismäärityksestä.

Xml-muoto

<FileToPath map="path\filename.ext" to="path" />

Description

Kaikki map-parametria vastaavat tiedostot luetaan to-parametrissa määritetystä polusta.

map-parametrin osalta:

  • Tiedoston nimi on määritettävä. Polku on valinnainen. Jos polkua ei määritetä, voidaan yhdistää missä tahansa kansiossa olevia tiedostoja.

  • Tiedostonimen yleismerkkejä tuetaan.

  • Kansion yleismerkkiä tuetaan.

to-parametrin osalta:

  • Polku on määritettävä.

  • Kansion yleismerkkiä tuetaan.

  • Tiedoston nimeä ei ole pakko määrittää.

    Esimerkit

  <FileToPath map="assembly.dll" to="c:\path\folder" />  
  <FileToPath map="PluginAssemblies\**\this.dll" to="..\..\Plugins\bin\**" />  
  <FileToPath map="*.jpg" to="%SRCBASE%\CrmPackage\WebResources\JPG format\" />  
  <FileToPath map="*.*" to="..\..\%ARCH%\%TYPE%\drop" />  

Esimerkki kartoituksesta

Seuraava XML-koodinäyte näyttää täydellisen yhdistämiskartoituksen tiedoston, jonka avulla SolutionPackager-työkalu voi lukea mitä tahansa verkkoresursseja sekä kaksi oletusarvoisesti luotua kokoonpanoa CRMDevTookitSample-nimisestä Developer Toolkit -projektista.

<?xml version="1.0" encoding="utf-8"?>  
<Mapping>  
       <!-- Match specific named files to an alternate folder -->  
       <FileToFile map="CRMDevTookitSamplePlugins.dll" to="..\..\Plugins\bin\**\CRMDevTookitSample.plugins.dll" />  
       <FileToFile map="CRMDevTookitSampleWorkflow.dll" to="..\..\Workflow\bin\**\CRMDevTookitSample.Workflow.dll" />  
       <!-- Match any file in and under WebResources to an alternate set of subfolders -->  
       <FileToPath map="WebResources\*.*" to="..\..\CrmPackage\WebResources\**" />  
       <FileToPath map="WebResources\**\*.*" to="..\..\CrmPackage\WebResources\**" />  
</Mapping>  

Hallitut ja ei-hallitut ratkaisut

Dataversen pakattu ratkaisutiedosto (.zip) voidaan viedä yhdessä kahdesta tyypistä, kuten tässä näkyy.

Hallittu ratkaisu
Valmis ratkaisu, joka voidaan tuoda organisaatioon. Kun komponentit on tuotu, niitä ei voi lisätä tai poistaa, vaikka ne voivat valinnaisesti sallia lisämukautukset. Tätä suositellaan, kun ratkaisun kehitys on valmis.

Hallitsematon ratkaisu
Avoin ratkaisu, jossa ei ole rajoituksia sille, mitä voidaan lisätä, poistaa tai muokata. Tätä suositellaan ratkaisun kehittämisen aikana.

Pakatun ratkaisutiedoston muoto on erilainen sen tyypin perusteella eli joko hallittu tai hallitsematon. SolutionPackager voi käsitellä molempia ratkaisutiedostojen muotoja. Työkalu ei kuitenkaan voi muuntaa yhtä tyyppiä toiseksi. Ainoa tapa muuntaa ratkaisutiedostot eri tyypiksi, kuten hallitsemattomasta hallittuun, on tuoda hallitsemattoman ratkaisun. zip-tiedosto Dataverse -palvelimelle ja sitten viedä ratkaisu hallittuna ratkaisuna.

SolutionPackager voi käsitellä hallitsemattomien ja hallittujen ratkaisujen .zip-tiedostoja yhdistettynä joukkona parametrin /PackageType:Both kautta. Jotta tämä toiminto voidaan suorittaa, ratkaisu on vietävä kahteen kertaan kumpanakin tyyppinä ja .zip-tiedostot on nimettävä seuraavasti.

Hallitsematon .zip-tiedosto: JokuNimi.zip

Hallittu .zip-tiedosto: JokuNimi_hallittu.zip

Työkalu olettaa, että hallittu zip-tiedosto on samassa kansiossa kuin hallitsematon tiedosto, ja purkaa molemmat tiedostot yhteen kansioon säilyttäen erot sen välillä, missä on hallittuja ja hallitsemattomia komponentteja.

Kun ratkaisu on purettu sekä hallitsemattomana että hallittuna, kyseisestä yksittäisestä kansiosta voi pakata molemmat tyypit tai kummankin tyypin yksittäin käyttäen /PackageType-parametria sen määrittämiseen, mikä tyyppi luodaan. Kun molemmat tiedostot määritetään, kaksi .zip-tiedostoa tuotetaan käyttämällä edellä esitettyä nimeämiskäytäntöä. Jos /PackageType-parametri puuttuu, kun pakkaus suoritetaan kansiosta, jossa on sekä hallittua että hallitsematonta sisältöä, tuotetaan oletusarvoisesti yksittäinen hallitsematon .zip-tiedosto.

Vianmääritys

Sanoma, joka tulee näkyviin, kun käytät Visual Studio resurssitiedostojen muokkaamiseen

Jos käytät Visual Studio ratkaisupaketin luoman resurssin muokkaukseen, näyttöön saattaa tulla seuraavankaltainen viesti: "Failed to determine version id of the resource file <filename>.resx the resource file must be exported from the solutionpackager.exe tool in order to be used as part of the pack process." Tämä tapahtuu, koska Visual Studio korvaa resurssitiedoston metatietotunnisteet tietotunnisteilla.

Ratkaisutapa

  1. Avaa resurssitiedosto haluamassasi tekstinkäsittelyohjelmassa ja paikallista ja päivitä seuraavat tunnisteet:

    <data name="Source LCID" xml:space="preserve">  
    <data name="Source file" xml:space="preserve">  
    <data name="Source package type" xml:space="preserve">  
    <data name="SolutionPackager Version" mimetype="application/x-microsoft.net.object.binary.base64">  
    
    
  2. Vaihda solmun nimi muodosta <data> muotoon <metadata>.

    Esimerkiksi tämä merkkijono:

    <data name="Source LCID" xml:space="preserve">  
      <value>1033</value>  
    </data>  
    
    

    Muuttuu muotoon:

    <metadata name="Source LCID" xml:space="preserve">  
      <value>1033</value>  
    </metadata>  
    
    

    Tämän ansiosta Solution Packager voi lukea ja tuoda resurssitiedoston. Tämä ongelma on havaittu vain käytettäessä Visual Studio Resource Editoria.

Virhe: Tarvittavaa tiedostoa ei löydy ...\Other\Customizations.xmlYAML-kansion kanssa

Tämä virhesanoma tulee näkyviin, kun suoritat SolutionPackager-tiedoston (tai pac solution pack) kansiossa, joka sisältää YAML-tiedostoja, kuten solution.yml, mutta kyseiset tiedostot sijoitetaan kansion pääkansioon vaaditun solutions/<SolutionUniqueName>/ alikansion sijaan.

Aiheuttaa: Työkalu tunnistaa YAML-lähteen ohjausobjektin muodon etsimällä tiedostoja sisältävän solutions/ alikansion*solution.yml. Kun kyseinen hakemisto ei ole käytössä, työkalu palaa automaattisesti XML (vanha) -muotoon ja odottaa Other\Customizations.xml. Tulokseksi saatava virhesanoma viittaa XML-tiedostoon eikä mainitse YAML:ää, joka on harhaanjohtava.

Korjata: Järjestä kansio uudelleen niin, että YAML-luettelotiedostot ovat oikeilla poluilla:

<rootFolder>/
  solutions/<YourSolutionUniqueName>/   ← move solution.yml here
    solution.yml
    solutioncomponents.yml
    rootcomponents.yml
    missingdependencies.yml
  publishers/<YourPublisherUniqueName>/
    publisher.yml

Jos olet saanut kansion Git-integroinnin vahvistustiedoista tai pac solution clone, kansiorakenteen pitäisi olla jo oikein. Kansio, joka sisältää vain ylimmän tason YAML-tiedostot ilman solutions/ alihakemistoa, merkitsee epätäydellistä purkua, eikä sitä voi pakata suoraan.

Varoitus: rootcomponents.yml määritetyllä osalla ei ole lähdetiedostoja

Tämä varoitus tulee näkyviin, kun osa, kuten pohjaan perustuva sovellus, on luettelossa rootcomponents.yml , mutta vastaavia lähdetiedostoja ei ole odotetun osan kansiossa (esimerkiksi canvasapps/<schema-name>/).

Vaikutus: Työkalu onnistuu silti (lopeta koodi 0) ja tuottaa kelvollisen .zip tiedoston, mutta määritetty osa jätetään pois pakatusta ratkaisusta.

Aiheuttaa: Kansio luotiin osakatkelmalla tai osan lähdetiedostot eivät sisälly säilöön. Esimerkiksi vain ratkaisun luettelotiedostot on varattu, ei itse pohjaan perustuvaa sovellusta.

Korjata: Varmista, että kaikilla määritetyillä rootcomponents.yml osilla on vastaavat lähdetiedostot -kansiossa. Pohjaan perustuvissa .msapp sovelluksissa tiedoston on oltava kohdassa canvasapps/<schema-name>/. Jos tiedostoja puuttuu, vie koko ratkaisu Uudelleen Dataversesta ja pura se uudelleen, tai hanki täydellinen ote toiminnolla pac solution clone .

Katso myös