Megosztás a következőn keresztül:


Az alkalmazás futtatókörnyezetének verziója, a sysroots és a béta API-k

Az Azure Sphere SDK-kiadások éles API-kat és béta API-kat is tartalmazhatnak. A termelési API-k hosszú távú stabilnak (LTS) minősülnek, míg a béta API-k még fejlesztés alatt állnak, és egy későbbi kiadásban változhatnak vagy eltávolíthatók. A legtöbb esetben az új API-k az első kiadásban bétaverzióként vannak megjelölve, és egy későbbi kiadásban kerülnek éles környezetbe. A béta API-k korai hozzáférést biztosítanak az új funkciókhoz, lehetővé téve a prototípus-készítést és a visszajelzést a véglegesítésük előtt. A béta API-kat használó alkalmazások általában módosításokat igényelnek a jövőbeli Azure OS- és SDK-kiadások után, hogy továbbra is megfelelően működjenek.

A bétaverziós funkciók a dokumentáció BÉTA címkével vannak ellátva. Minden magas szintű Azure Sphere-alkalmazás meghatározza, hogy csak az éles API-kat, vagy az éles és béta API-kat célozza-e meg.

Cél API-készletek, ARV és sysroots

A cél API-készlet azt jelzi, hogy az alkalmazás mely API-kat használja: csak éles API-kat, vagy éles és béta API-kat. A cél API-készlet értéke vagy egy egész szám, amely az alkalmazás futtatókörnyezetének verzióját (ARV) jelöli, vagy az ARV-t, valamint egy sztringet, amely azonosítja a Béta API kiadását. A numerikus érték önmagában csak az ARV éles API-jait határozza meg, míg a "value+BetaNumber" az éles és a béta API-kat egy adott kiadásban. Az ARV 8 például a 21.01-es kiadást, a "8+Beta2101" pedig a 20.01-es kiadás éles és béta API-jait adja meg. A jövőbeli kiadások további ARV-ket adnak hozzá.

Az Azure Sphere SDK több API-készletet implementál sysroots használatával. A sysroot határozza meg azokat a kódtárakat, fejlécfájlokat és eszközöket, amelyek egy adott API-készletet célzó alkalmazás fordításához és csatolásához használhatók. A sysrootok a Microsoft Azure Sphere SDK könyvtárban vannak telepítve a sysroots almappában.

Magas szintű alkalmazás cél API-készletének beállítása vagy frissítése

Ha az alkalmazást egy Azure Sphere-mintára alapozza, a cél API-készlet alapértelmezés szerint a minta által használt API-készlet. Ha a minta csak éles API-kat használ, a cél API-készlet az aktuális ARV értékre lesz beállítva. Ha a minta éles és béta API-kat is használ az aktuális kiadáshoz, a cél API-készlet a "value+BetaNumber" lesz, amely tartalmazza a béta API-kat.

Ha nem minta alapján állítja be az alkalmazást, be kell állítania a cél API-készletet az alkalmazás buildelési utasításaiban.

Ha már létrehozott egy alkalmazást, előfordulhat, hogy módosítania kell a cél API-készletet, ha újraépíti az alkalmazást egy új operációsrendszer-kiadáshoz. Ha az alkalmazás béta API-kat használ, frissítenie kell azt, amikor a cél API-beállítások megváltoznak, ami általában minden funkciókiadásnál előfordul. A béta API-k közvetlenül a Béta állapotból az éles környezetbe helyezhetők át, ami új ARV-t eredményezhet, vagy módosulhatnak, és bétaverzióban maradnak. Ha olyan alkalmazást frissít, amely béta API-kat használ egy újabb cél API-készlet megcélzásához, hibák vagy figyelmeztetések jelenhetnek meg az eltávolított vagy kivezetett API-kkal kapcsolatban.

Amikor módosítja a cél API-készletet, az alkalmazás létrehozása előtt törölnie kell a CMakeCache.txt fájlt. Ez a fájl a projekt out\ARM-Debug vagy out\ARM-Release könyvtárában található.

Cél API-készlet megadása

Állítsa be a cél API-készletet a CMakePresets.json:

  • A cél API-készletet a "AZURE_SPHERE_TARGET_API_SET" használatával konfigurálhatja. Például:

    "AZURE_SPHERE_TARGET_API_SET": "5" Vagy "AZURE_SPHERE_TARGET_API_SET": "5+Beta2004"

Ha az alkalmazás a legújabb API-készletet célozza meg, ezt a változót beállíthatja "latest-lts" értékre, ha még nem tette meg. Ha az alkalmazás a legújabb Béta API-készletet célozza meg, ezt a változót beállíthatja "latest-beta" értékre, ha még nem tette meg. Ha azonban az alkalmazás egy régebbi API-készletet céloz meg, ezt a változót úgy kell beállítania, hogy megfeleljen az általa használt értéknek.

  • Ha egy Visual Studio-projektben szeretné megadni a külső AZURE_SPHERE_TARGET_API_SET változót, állítsa be a következőket a CMakeSettings.json fájlban a ARM-Debug és ARM-Release konfigurációban:

    "variables": [
      {
        "name": "AZURE_SPHERE_TARGET_API_SET",
        "value": "latest-beta"
      }
    ]
    
  • Egy Visual Studio Code-projekt külső AZURE_SPHERE_TARGET_API_SET változójának megadásához állítsa be a következőket a .vscode/settings.json fájlban:

        "cmake.configureSettings": {
          "AZURE_SPHERE_TARGET_API_SET": "latest-lts"
      },
    
  • A parancssor külső AZURE_SPHERE_TARGET_API_SET változójának megadásához adja meg a paramétert a CMake meghívásakor:

    -DAZURE_SPHERE_TARGET_API_SET="latest-lts"

    Cserélje le a "latest-lts" kifejezést a "latest-beta" kifejezésre vagy egy adott régebbi értékre, például a "4" vagy az "5+Béta2004" értékre a korábban leírtak szerint.

Cél API-készletek és operációsrendszer-kompatibilitás

Az alkalmazás és az Azure Sphere operációs rendszer kompatibilitása attól függ, hogy melyik cél API-készlettel készült az alkalmazás, és hogy melyik ARV-t támogatja az operációs rendszer verziója. A alacsonyabb szintű alkalmazások vagy operációs rendszerek régebbi ARV-t használnak (amely alacsonyabb számmal rendelkezik), és egy magasabb szintű alkalmazás vagy operációs rendszer egy újabb ARV-t használ (amely magasabb számmal rendelkezik). A következő szakaszok ismertetik, hogy mire számíthat az egyes lehetséges forgatókönyvekben.

Alacsonyabb szintű alkalmazások magasabb szintű operációs rendszerrel

A csak éles API-kat használó meglévő alacsonyabb szintű rendszerképek az Azure Sphere operációs rendszer magasabb szintű verzióiban támogatottak. Például az 1. cél API-készlettel létrehozott alkalmazás sikeresen fut egy ARV 2-t támogató Azure Sphere operációs rendszeren. Így a meglévő üzembe helyezett alkalmazások továbbra is megfelelően fognak működni a felhőbeli operációs rendszer frissítése után. Hiba nélkül, közvetlen telepítést vagy felhőbeli üzembe helyezést is végezhet az alacsonyabb szintű, csak éles rendszerképek esetében egy magasabb szintű operációs rendszeren.

A béta API-kat használó alacsonyabb szintű rendszerképek nem támogatottak, és előfordulhat, hogy az Azure Sphere operációs rendszer magasabb szintű verzióin nem működnek. Előfordulhat például, hogy egy, az 1+beta1902 cél API-készlettel létrehozott alkalmazás nem fut egy ARV 2-vel rendelkező Azure Sphere operációs rendszeren. Az ilyen rendszerképek közvetlen telepítésére tett kísérletek hibát adnak vissza, kivéve, ha az az sphere device sideload deploy parancson használja a --force jelzőt. Hasonlóképpen, az az sphere image add parancs megköveteli, hogy a --force jelölő feltöltse az ilyen képet. A jelenlegi ellenőrzések nem akadályozzák meg, hogy a korábban feltöltött, béta API-kat használó rendszerképek egy olyan felső szintű operációs rendszer mellett legyenek üzembe helyezve, amely már nem támogatja ezeket a béta API-kat.

Magasabb szintű alkalmazások alacsonyabb szintű operációs rendszerrel

A magasabb szintű alkalmazások nem helyezhetők üzembe az Azure Sphere operációs rendszer régebbi verzióiban, függetlenül attól, hogy béta API-kat használnak-e. Az ilyen rendszerképek közvetlen telepítésére tett kísérletek hibával meghiúsulnak. A levegőn való üzembe helyezésre tett kísérletek jelenleg nem lehetségesek, mert a felső szintű SDK és az operációs rendszer egyidejűleg szabadul fel.