WiX ծրագրային գործիքների համախումբ
Իրադարձություններ և գործողություններ
1.Ներածություն
Նախորդ անգամ մենք տեսանք թե ինչպես կարելի է ստեղծել լրիվ կարգաբերելի(ճշգրտելու հնարավորությամբ), Windows տեղակայվող փաթեթներ: Տեղակայման հետ կապված խնդիրների մեծամասնությունը կարող է լուծվել մեր ձեռք բերած գիտելիքների շնորհիվ: Բայց միշտ լինում են խնդիրներ, երբ պահանջվում է մի փոքր ավելին, քան թույյ են տալիս ստանդարտ հնարավորությունները: Windows տեղակայող ծրագիրը տեղակայման ընթացքում իրագործում է բազմաթիվ քայլեր, որոնք մենք կանվանենք տեղակայման գործողություններ: Այդ գործողություններից ամենահիմնականները և նրանց հարող տարրերը ցուցակագրվում են ավտոմատ կերպով, այլ կերպ ասած նրանց հերթականությունը կանխորոշվում է WiX ծրագրային փաթեթի օգնությամբ՝ տեղակայվող տվյալների բազայի ստեղծման ժամանակ:
2. Տեղակայման ստանդարտ գործողություններ
Ընդհանուր դեպքում նրանք իրենցից ներկայացնում են գործողությունների հետևյալ շարքը՝
AppSearch
- LaunchConditions
- ValidateProductID
- CostInitialize
- FileCost
- CostFinalize
- InstallValidate
- InstallInitialize
- ProcessComponents
- UnpublishFeatures
- RemoveShortcuts
- RemoveFiles
- InstallFiles
- CreateShortcuts
- RegisterUser
- RegisterProduct
- PublishFeatures
- PublishProduct
- InstallFinalize
- RemoveExistingProducts
Գործողությունների իրական հերթականությունը մենք կարող ենք իմանալ օգտագործելով Orca MSI խմբագրիչը տվյալ տեղակայվող փաթեթի համար: Մեր դեպքում այն կունենա հետևյալ տեսքը՝

Այս իրադարձությունների հերթականությունը կարող ենք վերադասավորել օգտագործելով համապատասխան խումբը՝
- AdminUISequence
- InstallUISequence
- AdminExecuteSequence
- InstallExecuteSequence
Ադմինիստրատիվ տիպի տեղակայման կարելի է հասնել msiexec /a հրամանի օգնությամբ: Տեղակայման այս տիպը տեղակայվող փաթեթի համար ցանցում ստեղծում է «սկզբնաղբյուր կերպար», դրանով իսկ Windows աշխատախմբի անդամների համար հնարավորություն ստեղծելով օգտագործելու այս ակունքը բնօրինակ տեղակայվող փաթեթի փոխարեն (այս ֆունկցիոնալությունը տրվում է ազատ օգտագործման համար): Մեր մշակած բոլոր տեղակայվող փաթեթները կարելի է փորձել տեղակայել այս ճանապարհով:
Այսպիսով՝
- InstallExecuteSequence – Windows տեղակայող ծրագիրը գտնվում է մշտական բանակցության մեջ այս գործողությունների ցուցակի հետ՝ որոշելու համար նրանց հերթականությունը,
- InstallUISequence - կարևորվում է միայն այն ժամանակ, երբ տեղակայումը կատարվում է ՕԻ առկայությամբ(սա մեկ այլ ֆունկցիոնալություն է, որ կարելի է փորձել՝ msiexec – ը աշխատեցնելով /qn, /qb and /qr բանալիներով)
Տեղակայման գործողությունների հաջորդականությունը կարելի է փոխել օրինակի համար հետյալ կերպ՝
<InstallExecuteSequence>
<LaunchConditions After=’AppSearch’ />
<RemoveExistingProducts After=’InstallFinalize’>
</InstallExecuteSequence>
Սրանով մենք Windows տեղակայող ծրագրին հասկացնում ենք, որ LaunchConditions գործողությունը պետք է կատարվի AppSearch գործողությունից հետո(After), իսկ RemoveExistingProducts – ը InstallFinalize–ից հետո:
Օգտագործելով՝
- Before - առաջ
- After – հետո
ատրիբուտները մենք կկարողանանք փոխել տեղակայման գործողությունների հերթականությունը: Իսկ «Suppress = yes» - ով՝ կհաղորդենք, որ տվյալ գործողությունը տեղակայման ընթացքում չպետք է կատարվի:
3. Տեղակայման հավելյալ ստանդարտ գործողություններ
Կան շատ այլ հնարավոր ստանդարտ գործողություններ, որոնք ըստ լռության հերթագրված չեն տեղակայման գործողությունների ցուցակում: Օրինակ ScheduleReboot-ը տեղադրումից հետո օգտագործողից պահանջելու է վերագործարկել Windows – ը՝
CustomAction Id=’LaunchFile’ FileKey=’SimpleSampleAppexe‘ ExeCommand=” Return=’asyncNoWait’ />
տարբերանիշը (tag-ը) Windows տեղակայող ծրագրին կհաղորդի, որ SimpleSampleAppexe որոշիչով աշխատածրագիրը պետք է գործարկվի ասինխրոն (անհամաժամ) կերպով: Եթե «պատվիրվող» գործողությունը պայմանական է, ապա մենք հնարավորություն ունենք պայմանը իրականացնել օգտագործելով Custom տարբերանիշ`
<Custom Action=’LaunchFile’ After=’InstallFinalize’>NOT Installed</Custom>
Սրանով մենք Windows տեղակայող ծրագրին հաղորդում ենք, որ տեղակայման ընթացքում ծրագիրը պետք է գործարկվի միայն տեղակայման ժամանակ, և ոչ թե հեռացման:
Որոշ դեպքերում, մենք կարող է ցանկանանք գործարկել տեղակայվող փաթեթում գտնվող ինչ որ ծրագիր՝ առանց նպատակային մեքենայի վրա տեղակայելու: Նման դեպքերում մենք կարող ենք FileKey ատրիբուտի փոխարեն օգտագործել BinaryKey ատրիբուտը՝
<CustomAction Id=’LaunchFile’ BinaryKey =’SimpleSampleAppexe‘ ExeCommand=” Return=’asyncNoWait’ />
Մենք կարող ենք նաև օգտագործել ցանկացած այլ ծրագիր, որը գտնվում է նպատակային մեքենայի վրա՝
<Property Id=’NOTEPAD’>Notepad.exe</Property>
<CustomAction Id=’LaunchFile’ Property=’NOTEPAD’ ExeCommand=’[SourceDir]Readme.txt’ Return=’asyncNoWait’ />
Պատվիրված գործողությունների ժամանակ կարելի է նաև նշել, թե ինչպես պետք է մշակվի գործարկման արդյունքը(վերադարձված արժեքը) օգտագործելով Return ատրիբուտը: Return ատրիբուտի հնարավոր արժեքներն են՝
- check - Windows տեղակայող ծրագիրը կսպասի գործարկվող ծրագրի ավարտին և կստուգի նրա կատարման արդյունքը,
- Ignore - Windows տեղակայող ծրագիրը կսպասի գործարկվող ծրագրի ավարտին, բայց կանտեսի նրա կատարման արդյունքը,
- asyncWait - Windows տեղակայող ծրագիրը նշված ծրագիրը կգործարկի ասինխրոն(անհամաժամ) կերպով, կսպասի գործարկվող ծրագրի ավարտին, և կստուգի նրա կատարման արդյունքը,
- asyncNoWait - Windows տեղակայող ծրագիրը նշված ծրագիրը կգործարկի սինխրոն(համաժամ) կերպով, այնուհետև թողնելով նրան ինքնուրույն:
Որևէ սխալի առկայության դեպքում հնարավորություն ունենք օգտագործողին տեղյակ պահել այդ սխալի մասին՝
<CustomAction Id=’AbortError’ Error=’Cannot solve this riddle. Giving up.’ />
Մի հատկության(property) արժեքը մեկ այլ նմանատիպ հատկությանը վերագրելու ուղիղ ճանապարհ չկա, բայց օգտագործելով CustomAction տարբերանիշը, մենք կարող ենք փակել այդ բացը՝
<CustomAction Id=’PropertyAssign’ Property=’PathProperty’ Value=’[INSTALLDIR][FilenameProperty].[ExtensionProperty]‘ />
Նկատենք, որ ֆայլապանակների ճանապարհները միշտ վերջանում են պարփակիչ նշանով՝ «/», ուստի կարիք չկա առանձնապես հոգ տանել նրանց համար ֆայլապանակների ճանապարհների կառուցման ժամանակ:
Դիրեկտորիան(directory) կարող է վերագրվել մեկ այլ նմանատիպ ներկայացման՝
<CustomAction Id=’PropertyAssign’ Directory=’INSTALLDIR’ Value=’[TARGETDIR]\Program Files\MyCompany\SimpleSampleAppexe 1.0\bin’ />
(Շարունակելի)
2 Trackbacks
[...] LinkGard Software Blog in Armenian Skip to content Մեր Մասին « WiX Ծրագրային Գործիքների Համախումբ: Մաս 2 WiX Ծրագրային Գործիքների Համախումբ: Մաս 4 » [...]
[...] Նախորդ [...]