WiX Ծրագրային Գործիքների Համախումբ: Մաս 4

Նախորդ Հաջորդ

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 խմբագրիչը տվյալ տեղակայվող փաթեթի համար: Մեր դեպքում այն կունենա հետևյալ տեսքը՝

OrcaSnapshot

 Այս իրադարձությունների հերթականությունը կարող ենք վերադասավորել օգտագործելով համապատասխան խումբը՝

  • AdminUISequence
  • InstallUISequence
  • AdminExecuteSequence
  • InstallExecuteSequence

Ադմինիստրատիվ տիպի տեղակայման կարելի է հասնել msiexec /a հրամանի օգնությամբ: Տեղակայման այս տիպը տեղակայվող փաթեթի համար ցանցում ստեղծում է «սկզբնաղբյուր կերպար», դրանով իսկ Windows աշխատախմբի անդամների համար հնարավորություն ստեղծելով օգտագործելու այս ակունքը բնօրինակ տեղակայվող փաթեթի փոխարեն (այս ֆունկցիոնալությունը տրվում է ազատ օգտագործման համար): Մեր մշակած բոլոր տեղակայվող փաթեթները կարելի է փորձել տեղակայել այս ճանապարհով:

Այսպիսով՝

  • InstallExecuteSequenceWindows տեղակայող ծրագիրը գտնվում է մշտական բանակցության մեջ այս գործողությունների ցուցակի հետ՝ որոշելու համար նրանց հերթականությունը,
  • 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’ />

(Շարունակելի)


This entry was posted in Ծրագրերի Տեղակայում. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

2 Trackbacks

  1. [...] LinkGard Software Blog in Armenian Skip to content Մեր Մասին « WiX Ծրագրային Գործիքների Համախումբ: Մաս 2 WiX Ծրագրային Գործիքների Համախումբ: Մաս 4 » [...]

  2. [...] Նախորդ [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>