[installShield]使用gacutil.exe將.net組件裝到GAC

[installShield]使用gacutil.exe將.net組件裝到GAC

雖然installShield有提供方法將.net組件裝GAC去,筆者在測試時,卻會發生錯誤!所以只好透過gacutil.exe來將.net組件裝到GAC之中!

gacutil.exe有分.net版本的哦!如.net 1.1版的在Windows\Microsoft.NET\Framework\v1.1.4322的目錄之下,而.net 2.0版的則變成在SDK Bin目錄下(如c:\Program Files (x86)\Microsoft.NET\SDK\v2.0\Bin)。

所以筆者是先將gacutil.exe及gacutil.exe.config這2個檔案放到了INSTALLDIR之中,也可以放在SUPPORTDIR或是SRCDIR之中哦!

然後再寫個FUNCTION來處理將.net組件將到GAC及從GAC將組件移出了,如下,

export prototype ProcGAC(STRING);

function ProcGAC(szPara1)   
    STRING szGACPath, szGACPara1, szREGFilePath;
begin
    //安裝.net組件
    szGACPath = INSTALLDIR ^ "gacutil.exe"; 
    LongPathToQuote(szGACPath, TRUE);
    szGACPara1 = szPara1 + " "; 
    
    //執行裝到GAC去  
    szREGFilePath = INSTALLDIR ^ "YOUR.NETDLLPATH\MYNETGAC.dll";
    LongPathToQuote(szREGFilePath, TRUE);
    LaunchAppAndWait(szGACPath, szGACPara1 + szREGFilePath, LAAW_OPTION_NOWAIT + LAAW_OPTION_HIDDEN);
    
    //........註冊多個
end; 

所以我們在使用時,就可以在裝好之後呼叫 ProcGAC("/i");

在安裝程式移除時,呼叫 ProcGAC("/u");

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^