Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a szakasz a MsiEvaluateCondition függvény által használt feltételes utasítások szintaxisát, valamint a művelet sorrendtáblák. További információ: Feltételes utasítás szintaxisánakpéldái.
A feltételes utasítás szintaxisának összegzése
Ez a táblázat és az alábbi lista összefoglalja a feltételes kifejezésekben használandó szintaxist.
| Cikk | Szintaxis |
|---|---|
| érték | szimbólum | literál | egész szám |
| összehasonlító operátor | < | > | <= | >= | = | <> |
| kifejezés | érték | érték összehasonlító operátor értéke | ( kifejezés )| |
| Logikai tényező | kifejezés | NOT kifejezés |
| Logikai kifejezés | Logikai tényező | Logikai tényező ÉS kifejezés |
| kifejezés | Logikai kifejezés | Logikai kifejezés VAGY kifejezés |
| jelkép | tulajdonság | %environment-variable | $component-action | ?component-state | &funkcióművelet | !feature-state |
A szimbólumnevek és -értékek megkülönböztetik a kis- és nagybetűket.
A környezeti változók neve nem megkülönbözteti a kis- és nagybetűket.
A literális szöveget idézőjelek közé ("szöveg") kell tenni.
Jegyzet
Az idézőjeleket tartalmazó literális szöveg nem használható feltételes utasításokban, mert a literális szövegben nincs idézőjelek feloldó karaktere. Idézőjeleket tartalmazó literális szöveg összehasonlításához a literális szöveget egy tulajdonságba kell helyezni. Ha például ellenőrizni szeretné, hogy a SERVERNAME tulajdonság nem tartalmaz-e idézőjeleket, adjon meg egy IDÉZŐJELek nevű tulajdonságot a tulajdonságtáblában, " értékkel, és módosítsa a feltételt NEM KISZOLGÁLÓNÉV><IDÉZŐJELekre.
A nem létező tulajdonságértékek üres sztringekként vannak kezelve.
A lebegőpontos numerikus értékek nem támogatottak.
Az operátorok és az elsőbbség megegyezik az ALAP- és AZ SQL-nyelvekével.
Az aritmetikai operátorok nem támogatottak.
Zárójelek használhatók az operátorok elsőbbsége felülbírálásához.
Az operátorok nem érzékenyek a kis- és nagybetűkre.
Sztring-összehasonlítások esetén az operátorhoz tartozó tilde "~" előtag olyan összehasonlítást végez, amely nem megkülönbözteti a kis- és nagybetűket.
Egy egész szám és egy egész számmá nem konvertálható tulajdonságérték összehasonlítása mindig msiEvaluateConditionFalse, kivéve az "<>" összehasonlító operátort, amely msiEvaluateConditionTruead vissza.
Access-előtagok
Az alábbi táblázat azokat az előtagokat mutatja be, amelyekkel különböző rendszer- és telepítőinformációk érhetők el a feltételes kifejezésekben való használathoz.
| Szimbólum típusa | Előképző | Érték |
|---|---|---|
| Telepítő tulajdonság | (nincs) | Tulajdonság értéke (Tulajdonság) tábla. |
| Környezeti változó | % | A környezeti változó értéke. |
| Összetevő táblakulcsa | $ | Az összetevő műveletállapota. |
| Összetevő táblakulcsa | ? | Az összetevő telepített állapota. |
| Funkciótáblakulcs | & | A funkció műveletállapota. |
| Funkciótáblakulcs | ! | A szolgáltatás telepített állapota. |
Logikai operátorok
Az alábbi táblázat a feltételes kifejezések logikai operátorait mutatja be, magas és alacsony sorrendben.
| Operátor | Jelentés |
|---|---|
| Nem | Előtag nem szereplő operátora; a következő kifejezés állapotát invertálta. |
| És | IGAZ, ha mindkét kifejezés IGAZ. |
| Vagy | IGAZ, ha vagy mindkét kifejezés IGAZ. |
| Xor | IGAZ, ha bármelyik, de nem mindkét kifejezés IGAZ. |
| Eqv | IGAZ, ha mindkét kifejezés IGAZ, vagy mindkét kifejezés HAMIS. |
| Manó | IGAZ, ha a bal oldali kifejezés HAMIS, vagy a jobb oldali kifejezés IGAZ. |
Összehasonlító operátorok
Az alábbi táblázat a feltételes kifejezésekben használt összehasonlító operátorokat mutatja be. Ezek az összehasonlító operátorok csak két érték között fordulhatnak elő.
| Operátor | Jelentés |
|---|---|
| = | IGAZ, ha a bal oldali érték egyenlő a jobb értékkel. |
| <> | IGAZ, ha a bal oldali érték nem egyenlő a jobb értékkel. |
| > | IGAZ, ha a bal oldali érték nagyobb, mint a jobb. |
| >= | IGAZ, ha a bal oldali érték nagyobb vagy egyenlő a jobb értékkel. |
| < | IGAZ, ha a bal oldali érték kisebb, mint a jobb. |
| <= | IGAZ, ha a bal oldali érték kisebb vagy egyenlő a jobb értékkel. |
Részszűrési operátorok
Az alábbi táblázat a feltételes kifejezésekben használt részszűrési operátorokat mutatja be. Az összevonási operátorok két sztringérték között fordulhatnak elő.
| Operátor | Jelentés |
|---|---|
| >< | IGAZ, ha a bal oldali sztring a jobb sztringet tartalmazza. |
| << | IGAZ, ha a bal oldali sztring a jobb sztringgel kezdődik. |
| >> | IGAZ, ha a bal oldali sztring a jobb sztringgel végződik. |
Bitenkénti numerikus operátorok
Az alábbi táblázat a feltételes kifejezések bitenkénti numerikus operátorait mutatja be. Ezek az operátorok két egész szám között fordulhatnak elő.
| Operátor | Jelentés |
|---|---|
| >< | Bitenkénti ÉS, IGAZ, ha a bal és a jobb egész számokban vannak közös bitek. |
| << | Igaz, ha a bal egész szám magas 16 bites része egyenlő a jobb egész számokkal. |
| >> | Igaz, ha a bal egész szám alacsony 16 bites része egyenlő a jobb egész számokkal. |
Funkció- és összetevőállapot-értékek
Az alábbi táblázat azt mutatja be, hogy hol érvényes a funkció- és összetevő-operátorjelek használata.
| Operátor <állapot> | Ahol ez a szintaxis érvényes |
|---|---|
| $component művelet | A Feltétel táblában és a sorrendben táblákban a CostFinalize művelet után. |
| &funkcióművelet | A Feltétel táblában és a sorrendben táblákban a CostFinalize művelet után. |
| !feature-state | A Feltétel táblában és a sorrendben táblákban a CostFinalize művelet után. |
| ?component-state | A Feltétel táblában és a sorrendben táblákban a CostFinalize művelet után. |
Az alábbi táblázat a feltételes kifejezésekben használt funkció- és összetevőállapot-értékeket mutatja be. Ezek az állapotok csak akkor vannak beállítva, ha MsiSetInstallLevel közvetlenül vagy a CostFinalize művelettel hívja meg.
| Állam | Érték | Jelentés |
|---|---|---|
| INSTALLSTATE_UNKNOWN | -1 | Nincs teendő a szolgáltatáson vagy az összetevőn. |
| INSTALLSTATE_ADVERTISED | 1 | Meghirdetett funkció. Ez az állapot nem érhető el összetevők esetén. |
| INSTALLSTATE_ABSENT | 2 | A funkció vagy összetevő nincs jelen. |
| INSTALLSTATE_LOCAL | 3 | Funkció vagy összetevő a helyi számítógépen. |
| INSTALLSTATE_SOURCE | 4 | A szolgáltatás vagy összetevő a forrásból fut. |
A "&MyFeature=3" feltételes kifejezés például csak akkor számít Igaz értékre, ha a MyFeature az aktuális állapotáról a helyi számítógépre való telepítés állapotára változik, INSTALLSTATE_LOCAL.
Vegye figyelembe, hogy nem függhet az $Component 1=3 feltételtől annak ellenőrzéséhez, hogy az 1. összetevő helyileg telepítve van-e a számítógépen. Ez meghiúsulhat, ha az 1. összetevőt egynél több termék telepíti. Miután a Product1 helyileg telepítette az 1. összetevőt, a telepítő a $Component 1=3 feltételt hamisként értékeli a Product2 telepítése során. Ennek az az oka, hogy a telepítő az összetevő verzióját az összetevő fő elérési útján határozza meg, és megjelöli az összetevőt a telepítéshez, ha annak verziója nagyobb vagy egyenlő a telepített összetevővel.
Vegye figyelembe, hogy a telepítő nem végez közvetlen összehasonlítást a verzió adattípussal a feltételes utasításokban. Nem használhat például összehasonlító operátorokat az olyan verziók összehasonlítására, mint a "01.10" és az "1.010" egy feltételes utasításban. Ehelyett használjon érvényes módszert egy verzió keresésére, például Meglévő alkalmazások, fájlok, beállításjegyzék-bejegyzések vagy .ini fájlbejegyzések keresése, majd állítson be egy tulajdonságot.
Kapcsolódó témakörök