NSIS判斷FrameWork是否安裝

來源:互聯網
上載者:User

NSIS的官方地址是:http://nsis.sourceforge.net/Main_Page

     NSIS的是:http://nsis.sourceforge.net/Download,

     NSIS的協助文檔是:http://nsis.sourceforge.net/Docs/

 判斷DotNetFrameWork是否安裝,可以自己添加如下的代碼:

 

;f2.0

Function .onInit
   call isStepFramework
 FunctionEnd

 

  Function isStepFramework

        ReadRegStr $0 HKLM SOFTWARE/Microsoft/.NETFramework/policy/v2.0 "50727"
        StrCmp $0 "50727-50727" 0 +2
        Return    ;相同
        SetOutPath "$DOCUMENTS"
        File "setupRelease/dotnetfx.exe"

        ExecWait '"$DOCUMENTS/dotnetfx.exe"'
 FunctionEnd

 

 

 

 

 

     Function IsNetfx35Installed

    ;Check is Net 3.5 is install

    ;Push 0 for true, Pop -1 for false

    ${registry::Read} "HKEY_LOCAL_MACHINE/Software/Microsoft/NET Framework Setup/NDP/v3.5" "SP" $R0 $R1

    ${If} $R1 == ""

        Push -1

    ${Else}

        Push 0

    ${EndIf}

  FunctionEnd 

     這是一個定義函數,他首先可以使用${registry::Read}來讀取註冊表中的值,並放入$R0 $R1,分別是類型和值,判斷擷取的值是不是為空白,就可以判斷是不是安裝過.NET Framework 3.5了。

     安裝.NET Framework 3.5:

  Function InstallDotNetFx

      SetOutPath "$PLUGINSDIR"

      Banner::show /NOUNLOAD "正在安裝.NET運行庫,請耐心等待..."

      ExecWait '"$EXEDIR/DotNetFX35/dotNetFx35setup.exe"' $0

      pop $0

      ${If} $0 != "0"

          Banner::destroy

          abort

      ${EndIf}

      Banner::destroy

  FunctionEnd

  這是.NET Framework 3.5的安裝,我選擇了dotNetFx3.5的離線安裝包,並將其放在安裝檔案的目錄下,這樣可以不把

 .NET Framework 3.5打包到程式中,減少程式的大小。$EXEDIR是NSIS的內部程式常量,可以擷取安裝檔案的目錄。而且他還提供了很多的內部宏和常量。

  外掛程式的自作,需要訪問已經安裝的程式目錄,這就要使用對其註冊表的方法,將程式的安裝目錄擷取,對於NSIS,這也是相當的簡單的。 

  首先在安裝目錄的最上方:

  InstallDir "$PROGRAMFILES/Test"

  修改為:

  InstallDirRegKey HKLM "SOFTWARE/Test" "Path"

  然後在Function .onInit中添加如下的內容:

    StrCmp $INSTDIR "" 0 Continue

      MessageBox MB_OK|MB_ICONSTOP "Test 未安裝,請先安裝Test。"

      Abort

   Continue:

  相當的簡單。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.