tags:

views:

197

answers:

3

Can a NSIS script download .NET and DirectX from microsoft, then install it?

I don't want to include the installers in my installer because they are huge.

A: 

Here you go: info on doing a web download for DirectX

Dave
I want to download the file during the install, and not include DirectX or the .NET framework in my 8MB installer.
Kevin
The file in reference here is **not** the full installer, it is the **web** installer.
Dave
A: 

For DX, you can use dxwebsetup.exe as a bootstrap. It's a small installer, which scans the user's system and then downloads required components:
http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en

Not sure if there's a similar web installer for the regular .net framework, but at least that's half the battle

Joel Martinez
+2  A: 

Here's an example for .Net :

Function GetDotnet ;// looks for local copy before downloading, returns path in $0
    Pop $0
    ${If} ${FileExists} "$InitDir\dotnetfx35.exe"
        StrCpy $0 "$InitDir\dotnetfx35.exe"
    ${ElseIf} ${FileExists} "$InitDir\dotnetfx35setup.exe"
        StrCpy $0 "$InitDir\dotnetfx35setup.exe"
    ${Else}         
        Call DownloadDotnet
        StrCpy $0 $0
    ${EndIf}
    Push $0
FunctionEnd

Function DownloadDotnet ;// downloads .Net, returns download path in $0
    NSISDL::download "${DotnetDownloadUrl}" "${TempDir}\dotnetfx35setup.exe"
    Pop $0  
    ${If} $0 == "cancel"
        Quit    
    ${EndIf} 
    StrCpy $0 "${TempDir}\dotnetfx35setup.exe"
    Push $0
FunctionEnd 

Function InstallDotnet ;// kicks off the .Net installer
    Pop $0
    Push $1 
    ExecWait '"$0" /norestart' $1       
FunctionEnd
Seba Illingworth