Jump to content

dandaman32

Newbies
  • Posts

    4
  • Joined

  • Last visited

Posts posted by dandaman32

  1. Who's to say our dependency checking won't get more complicated in the future? What if we run into a wall where NSIS can't do something we need it to do? With our solution we have complete flexibility. There's no reason to use NSIS just for the sake of using NSIS, and it does not "work better" for our needs.

    NSIS allows you to write plugins in C/C++/Delphi. So that means that if you can do it in C, you can do it with NSIS.

    -dandaman32

  2. NSIS has a function that can check for .NET framework. This way you can at least drop "SetupShim.exe"

     Function IsDotNETInstalled
      Push $0
      Push $1
      Push $2
      Push $3
      Push $4
    
      ReadRegStr $4 HKEY_LOCAL_MACHINE \
        "Software\Microsoft\.NETFramework" "InstallRoot"
      # remove trailing back slash
      Push $4
      Exch $EXEDIR
      Exch $EXEDIR
      Pop $4
      # if the root directory doesn't exist .NET is not installed
      IfFileExists $4 0 noDotNET
    
      StrCpy $0 0
    
      EnumStart:
    
        EnumRegKey $2 HKEY_LOCAL_MACHINE \
          "Software\Microsoft\.NETFramework\Policy"  $0
        IntOp $0 $0 + 1
        StrCmp $2 "" noDotNET
    
        StrCpy $1 0
    
        EnumPolicy:
    
          EnumRegValue $3 HKEY_LOCAL_MACHINE \
            "Software\Microsoft\.NETFramework\Policy\$2" $1
          IntOp $1 $1 + 1
           StrCmp $3 "" EnumStart
            IfFileExists "$4\$2.$3" foundDotNET EnumPolicy
    
      noDotNET:
        StrCpy $0 0
        Goto done
    
      foundDotNET:
        StrCpy $0 1
    
      done:
        Pop $4
        Pop $3
        Pop $2
        Pop $1
        Exch $0
    FunctionEnd

    And directly out of my installer's source:

    Call IsDotNETInstalled
    Pop $0
    StrCmp $0 1 +4
    MessageBox MB_OK|MB_ICONINFORMATION "The installer was unable to detect the Microsoft .NET Framework.  $(^Name) requires the .NET Framework in order to run.$\n$\nPlease click OK to exit Setup."
    ExecShell open "http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&displaylang=en"
    Quit

    You can see that this works better than having a whole separate program do nothing but check for .NET framework!

    As for your translation problem, the ExperienceUI has a German translation creation in progress.

    Also your installer network is over 1 MB, mine is <800kb, this can make a difference for dialup users.

    -dandaman32

  3. I noticed how Paint.NET is installed...you wrote an MSI package that contains the data, your own UI, and an NSIS-based wrapper, I'm guessing for the compresson.

    The installation works, but why do you have, like, three different stub loaders before the users actually see the installer window? Perhaps you don't see what you're missing in NSIS... :?

    I have written a new installer entirely in NSIS. It was tested on a computer that had never seen the light of Paint.NET, and it worked seamlessly. It was originally developed for Beta 3, but at the last minute I updated it for 2.5b4.

    The full NSIS source code for the installer itself is included, but it was developed using a currently unreleased version of the ExperienceUI and you will need the ExperienceUI version 1.1M2 (currently release pending, but I made it so I can do what I want with it) in order to rebuild the installer.

    Download this cool new installer: http://www.freewebtown.com/dandaman32/pdn/PDNSetup-2.5b4.exe

    EDIT: This installer is experimental. DO NOT try to just use it if you are new to Paint.NET for now, and by downloading and running this file you are doing so at your own risk!

    Until further notice, all updates to this installer will be posted on this thread if needed.

    -dandaman32

×
×
  • Create New...