ΠΠ ΠΠΠΠ§ΠΠΠΠ Π’Π°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΊΠ°ΠΊ InstallShield Developer ΠΈ Wise Installer ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ. ΠΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.
Π ΠΈΡΡΠ½ΠΎΠΊ 2. Π‘ΡΡΡΠΊΡΡΡΠ° Π³ΡΡΠΏΠΏΡ Π€Π°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ
ΠΡΠ° Π³ΡΡΠΏΠΏΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 15 ΡΠ°Π±Π»ΠΈΡ. ΠΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
ΠΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ File Π ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠ°ΠΉΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ, ΡΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ Component RemoveFile Π ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ RemoveFiles Font ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠΈΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ SelfReg ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΌΠΎΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΠΈΡ ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (ΡΠΎ Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ DllRegisterServer ΠΈ DllUnregisterServer). Installer Π½Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ EXE-ΡΠ°ΠΉΠ»Ρ Media ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π°Π±ΠΎΡ Π΄ΠΈΡΠΊΠΎΠ² ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ BindImage ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ DLL 1 MoveFile ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΈΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ DuplicateFile ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ: Π»ΠΈΠ±ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ», Π»ΠΈΠ±ΠΎ Π² ΡΠΎΡ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ IniFile Π ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ .ini-ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΠ±ΡΠ°Π½ Π΄Π»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ RemoveIniFile ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· .ini-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Environment ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ 2 Icon ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠΊΠΎΠ½ΠΎΠΊ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠΊΠΎΠ½ΠΊΠ° ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π½Π° Π΄ΠΈΡΠΊΠ΅ 3 FileSFPCatalog ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Windows File Protection Π² ΠΠ‘ Windows Me SFPCatalog ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Windows File Protection Π² ΠΠ‘ Windows Me MsiFileHash ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΡΠ°Π½ΠΈΡ 128-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ 4ΠΠ ΠΠΠΠ§ΠΠΠΠ
1. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°Ρ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Windows API BindImageEx
2. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Windows95/98 Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ autoexec.bat
3. Π’Π°Π±Π»ΠΈΡΠ° Icon ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²
4. Π’Π°Π±Π»ΠΈΡΠ° MsiFileHash ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π²Π΅ΡΡΠΈΡΡ . Windows Installer ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΠΈΡΠ½Π΅Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ.
Π’Π°Π±Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Windows
ΠΡΠ° Π³ΡΡΠΏΠΏΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Windows. Π‘ΡΡΡΠΊΡΡΡΠ° Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.
Π ΠΈΡΡΠ½ΠΎΠΊ 3. Π‘ΡΡΡΠΊΡΡΡΠ° Π³ΡΡΠΏΠΏΡ ΡΠ°Π±Π»ΠΈΡ ΠΠ°ΠΏΠΈΡΠΈ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Windows.
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ Π³ΡΡΠΏΠΏ, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Component, Feature ΠΈ File. ΠΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΡΠ΄Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π·Π΄Π΅ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π²ΡΠΈΠ΅ΡΡ Π² Π΄ΡΡΠ³ΠΈΡ Π³ΡΡΠΏΠΏΠ°Ρ , Π½ΠΎ Π·Π΄Π΅ΡΡ ΠΈΠ³ΡΠ°ΡΡΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΡΡ ΡΠΎΠ»Ρ (ΡΡΠΎ ΡΠ°Π±Π»ΠΈΡΡ SelfReg ΠΈ Environment).
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ° Π³ΡΡΠΏΠΏΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ 11 ΡΠ°Π±Π»ΠΈΡ, ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΠ ΠΠΠΠ§ΠΠΠΠ
1. ΠΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ΡΠΈΠΏΠΎΠ² Π½Π΅ Π΄Π΅Π»Π°Π΅ΡΡΡ. ΠΠ°ΠΏΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² Windows Installer ΠΠ Π ΠΠΠΠΠΠΠΠ£ΠΠ’Π‘Π― ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½ΡΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΡΠΎΠΉ, ΡΡΠΎ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ DllRegisterServer.
3. ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² Π΄Π°Π½Π½ΡΡ Π³ΡΡΠΏΠΏΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Windows NT / 2000 / XP Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅Π΅ ΠΏΠΈΡΡΡΡΡ Π² ΡΠ΅Π΅ΡΡΡ.
Π‘ΠΠΠΠ’ ΠΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Registry ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π΅ΠΉ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Installer Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ΅Π΅ΡΡΡΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Registry ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π»Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ - ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠΈΡΠΊ Π·Π°ΠΏΠΈΡΠΈ Π»ΠΈΡΠ½Π΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ COM-ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ .
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ
ΠΡΠ° Π³ΡΡΠΏΠΏΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΎΡΡ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΌΡΡΠ»Π° Π½Π΅Ρ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ - ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ. ΠΡΡΠ³Π°Ρ ΠΆΠ΅ ΡΠ°ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡΠ°ΠΊ, ΡΡΠ° Π³ΡΡΠΏΠΏΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 5 ΡΠ°Π±Π»ΠΈΡ, ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ _Tables Π₯ΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π° Π²ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π°Π²ΡΠΎΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π»Π΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ). ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ _Columns Π₯ΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ°Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π΅ Ρ ΡΠ°Π½ΡΡΡΡ. ΠΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ _Streams Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ OLE. ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ MsiRecordReadStream _Storages Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π°Π½Π½ΡΡ OLE. ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ MsiRecordSetStream _Validation ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠΎΠ»Π±ΡΠ°Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΡ ΠΈΠΌΠ΅Π½Π° ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΡΡ Π²Π°ΠΆΠ½ΡΡ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡΠ’Π°Π±Π»ΠΈΡΡ ΠΏΠΎΠΈΡΠΊΠ°