2010年6月2日 星期三

NSIS .NET Version

方法一:
使用GetCORVersion
可參考:
用法如下:
System::Call "mscoree::GetCORVersion(w .r0, i ${NSIS_MAX_STRLEN}, *i) i .r1 ?u"
Pop $0
此用法為判斷C:\WINDOWS\Microsoft.NET\Framework裡面的.NET版本資訊。
但僅限於到2.0的版本。
我的電腦已安裝到4.0的版本如下:

但使用此方法顯示出來的版本號碼為:

方法二:
利用Registry來做判斷
可參考:
用法如下:(判斷是否有安裝3.0)
StrCpy $R1 "SOFTWARE\Microsoft\.NETFramework"
StrCpy $R2 0
StartEnum:
EnumRegKey $R3 HKLM "$R1" $R2
StrCmp $R3 "" noDotNet notEmpty
notEmpty:
StrCpy $R4 $R3 1 0
StrCmp $R4 "v" +1 goNext

StrCpy $R4 $R3 1 1
StrCmp $R4 "3" +1 goNext

StrCpy $R4 $R3 1 3
StrCmp $R4 "0" +1 goNext
MessageBox MB_OK $R3
Return
goNext:
IntOp $R2 $R2 + 1
goto StartEnum

noDotNet:
MessageBox MB_OK "You must have the 3.0 or newer .NET Framework installed!"
Quit
我的電腦在Registry的.NET資訊如下:

可取得有3.0的版本資訊

此方法可用於判斷是否已安裝需要的.NET版本。

沒有留言:

張貼留言