Registrácie komponentov v ASP
Dátum: 09. July 2001
Vec: ASP

Neviem, ako vy, ale ja som si zvykol pri písaní ASP aplikacií na Microsoftacku stavbu aplikácie 3-Tier (trojradová) a všetky funkcie vkladám do komponenty. Je to jednoduchšie pri opravovaní chýb a nikto mi nevidi do kódu. Lenže to mi prinieslo množstvo stresu pri ladení, pretože pri zmene kódu v komponente je potrebné ju odregistrovať a zaregistrovať.



Vždy som písal do command promtu regsrv32.dll namiesto regsvr32.dll (pripadá mi to logickejšie), dlho mi trvalo kým som napisal path ku komponente - jednoducho: strata času. Ak máte podobné problémy, vytvorte si tento maly RegSvr32.inf súbor (na konci článku) a dvakrát naňho kliknite. Odteraz stačí ukázať na DLL, OCX, EXE alebo AX súbor pravou myšou a vybrať buď Register alebo Unregister a je to.

Druhý problém pri aplikácii s komponentami je, že IIS dlho "drží" komponentu a nie je možné ju bez reštartovania IIS servisu alebo celého počítača (aj to som robieval pri mojich začiatkoch, LOL) uvoľniť a prepisať. Avšak stačí si vytvoriť malý .bat súbor a doňho napísať jediný príkaz: iisreset - tento reštartuje IIS service a uvoľní komponentu a potom ju môžete prepísať novou verziou. Príkaz sa dá napísať aj do command promtu alebo spustiť pomocou Start/Run/iisreset. Nezabudnite predtým komponentu odregistrovať a po reštartovaní IIS spať zaregistrovať.

Skopíruj tento text do notepadu a pomenuj súbor RegSvr32.inf - dvakrát klikni na súbor.
; RegSvr32 Shell Extension
; Allow you to register DLL, OCX, EXE and AX with a right click !
; Win 9x, NT4 & 2k
; Release 1.1
;

[Version]
signature="$chicago$"

[DefaultInstall]
CopyFiles=Files.inf
AddReg=Reg.Add,Reg.Uninstall

[DefaultInstall.ntx86]
CopyFiles=Files.inf
AddReg=Reg.Add,Reg.Uninstall.NT

[DefaultUninstall]
DelFiles=Files.inf
DelReg=Reg.Add,Reg.Uninstall,Reg.Uninstall.NT,Reg.Remove,

[SourceDisksNames]
1="%01%",,1

[Reg.Uninstall]
HKLM,%UnInstallPath%,DisplayName,,%UninstallDispName%
HKLM,%UnInstallPath%,UninstallString,,"%10%
undll.exe setupx.dll,InstallHinfSection DefaultUninstall 132 %17%%InfFile%"

[Reg.Uninstall.NT]
HKLM,%UnInstallPath%,DisplayName,,%UninstallDispName%
HKLM,%UnInstallPath%,UninstallString,,"%11%
undll32.exe setupapi,InstallHinfSection DefaultUninstall 132 %17%%InfFile%"

[Reg.Add]
HKCR,.ocxshellGejRegOCX,,,Register
HKCR,.ocxshellGejRegOCXcommand,,,"regsvr32 %1"
HKCR,.ocxshellGejUnRegOCX,,,UnRegister
HKCR,.ocxshellGejUnRegOCXcommand,,,"regsvr32 /u %1"
HKCR,.axshellGejRegAX,,,"Register Filter"
HKCR,.axshellGejRegAXcommand,,,"regsvr32 %1"
HKCR,.axshellGejUnRegAX,,,"UnRegister Filter"
HKCR,.axshellGejUnRegAXcommand,,,"regsvr32 /u %1"
HKCR,dllfileshellGejRegDLL,,,Register
HKCR,dllfileshellGejRegDLLcommand,,,"regsvr32 %1"
HKCR,dllfileshellGejUnRegDLL,,,UnRegister
HKCR,dllfileshellGejUnRegDLLcommand,,,"regsvr32 /u %1"
HKCR,exefileshellGejRegEXE,,,"Register Server"
HKCR,exefileshellGejRegEXEcommand,,,"%1 /regserver"
HKCR,exefileshellGejUnRegEXE,,,"UnRegister Server"
HKCR,exefileshellGejUnRegEXEcommand,,,"%1 /unregserver"

[Reg.Remove]
HKCR,.ocxshellGejRegOCX
HKCR,.ocxshellGejRegOCXcommand
HKCR,.ocxshellGejUnRegOCX
HKCR,.ocxshellGejUnRegOCXcommand
HKCR,.axshellGejRegAX
HKCR,.axshellGejRegAXcommand
HKCR,.axshellGejUnRegAX
HKCR,.axshellGejUnRegAXcommand
HKCR,dllfileshellGejRegDLL
HKCR,dllfileshellGejRegDLLcommand
HKCR,dllfileshellGejUnRegDLL
HKCR,dllfileshellGejUnRegDLLcommand
HKCR,exefileshellGejRegEXE
HKCR,exefileshellGejRegEXEcommand
HKCR,exefileshellGejUnRegEXE
HKCR,exefileshellGejUnRegEXEcommand

[Strings]
InfFile="RegSvr32.inf"
SetupRegPath="SoftwareMicrosoftWindowsCurrentVersionSetup"
UninstallDispName="Gej's RegSvr32 Shell Extension"
UnInstallPath="SoftwareMicrosoftWindowsCurrentVersionUninstallGejRegSvr32ShellEXtension"

[DestinationDirs]
Files.Inf=17

[Files.Inf]
Regsvr32.inf




Tento článok je z Developer.sk
http://www.developer.sk/

URL pre tento príspevok je:
http://www.developer.sk//article.php?sid=198