Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Looking for installer...

Looking for installer...

Scheduled Pinned Locked Moved The Lounge
csharpdotnetquestioncareer
11 Posts 7 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W wout de zeeuw

    I'm looking of an installer for a .NET app. Nsis/innosetup might do the job, but I'm not convinced they handle .NET framework installs nicely for x86/x64 scenarios. So perhaps a commercial installer like Advanced Installer gives me peace of mind (still not that expensive). What are your experiences in this area?

    Wout

    M Offline
    M Offline
    Member 96
    wrote on last edited by
    #2

    We use Inno for .net apps both winform and asp.net and both x86 and 64bit os, no problems, no issues at all. We've tried and used pretty much every other installer out there over the years and all were worse than Inno, harder to deal with and resulted in more support required for our end users. Nothing, commercial or otherwise, gives you smaller, faster, easier setups than Inno setup mostly because it *doesn't* use the windows installer API which is deeply flawed in many ways that cause aggravation both supporting an app with end users and developing an installer that simply does what you want when you want. In our setup we detect if .net is present and if not auto direct the user to the Microsoft page where it detects and installs the framework you need for your OS. These are the key bits for detecting .net and 64 bit os:

    {Check for the .net 3.5 framework}

    function InitializeSetup(): Boolean;
    var
    ErrorCode: Integer;
    NetFrameWorkInstalled : Boolean;
    Result1 : Boolean;
    begin
    NetFrameWorkInstalled := RegKeyExists(HKLM,'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5');
    if NetFrameWorkInstalled then
    begin
    Result := true;
    end else
    begin
    Result1 := MsgBox('This application requires the .NET Framework 3.5.'+#13#13+'Please download and install the .NET Framework and run this setup again.'+#13#13+'Do you want to download the framework now?',
    mbConfirmation, MB_YESNO) = idYes;
    if Result1 =false then
    begin
    Result:=false;
    end else
    begin
    Result:=false;
    ShellExec('open',
    'http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6',
    '','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
    end;
    end;
    end;

    {Check for 64 bit operating system}
    var
    Has64bitChecked: Boolean;
    Is64Bit: Boolean;

    function IsX64: Boolean;
    begin
    if not Has64bitChecked then begin
    Is64Bit := (ProcessorArchitecture = paX64);
    Has64bitChecked:=true;

    end
    Result:=Is64Bit;
    end;

    For the 64bit you use a Check flag in Inno like this:

    Source: "..\..\3rdprtylibs\chilkat\ChilkatDotNet2.dll"; DestDir: "{app}";Permissions: everyone-full; Check: not IsX64
    Source: "..\..\3rdprtylibs\chilkat\64bit\ChilkatDotNet2.dll"; DestDir: "{app}";Permissions: everyone-full; Check: IsX64


    "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

    E W 2 Replies Last reply
    0
    • M Member 96

      We use Inno for .net apps both winform and asp.net and both x86 and 64bit os, no problems, no issues at all. We've tried and used pretty much every other installer out there over the years and all were worse than Inno, harder to deal with and resulted in more support required for our end users. Nothing, commercial or otherwise, gives you smaller, faster, easier setups than Inno setup mostly because it *doesn't* use the windows installer API which is deeply flawed in many ways that cause aggravation both supporting an app with end users and developing an installer that simply does what you want when you want. In our setup we detect if .net is present and if not auto direct the user to the Microsoft page where it detects and installs the framework you need for your OS. These are the key bits for detecting .net and 64 bit os:

      {Check for the .net 3.5 framework}

      function InitializeSetup(): Boolean;
      var
      ErrorCode: Integer;
      NetFrameWorkInstalled : Boolean;
      Result1 : Boolean;
      begin
      NetFrameWorkInstalled := RegKeyExists(HKLM,'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5');
      if NetFrameWorkInstalled then
      begin
      Result := true;
      end else
      begin
      Result1 := MsgBox('This application requires the .NET Framework 3.5.'+#13#13+'Please download and install the .NET Framework and run this setup again.'+#13#13+'Do you want to download the framework now?',
      mbConfirmation, MB_YESNO) = idYes;
      if Result1 =false then
      begin
      Result:=false;
      end else
      begin
      Result:=false;
      ShellExec('open',
      'http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6',
      '','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
      end;
      end;
      end;

      {Check for 64 bit operating system}
      var
      Has64bitChecked: Boolean;
      Is64Bit: Boolean;

      function IsX64: Boolean;
      begin
      if not Has64bitChecked then begin
      Is64Bit := (ProcessorArchitecture = paX64);
      Has64bitChecked:=true;

      end
      Result:=Is64Bit;
      end;

      For the 64bit you use a Check flag in Inno like this:

      Source: "..\..\3rdprtylibs\chilkat\ChilkatDotNet2.dll"; DestDir: "{app}";Permissions: everyone-full; Check: not IsX64
      Source: "..\..\3rdprtylibs\chilkat\64bit\ChilkatDotNet2.dll"; DestDir: "{app}";Permissions: everyone-full; Check: IsX64


      "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

      E Offline
      E Offline
      Electron Shepherd
      wrote on last edited by
      #3

      John C wrote:

      3rdprtylibs\chilkat

      Are you using stuff from http://www.chilkatsoft.com/[^]? We've been looking at their SSH component. What have your experiences been with them?

      Server and Network Monitoring

      M 1 Reply Last reply
      0
      • E Electron Shepherd

        John C wrote:

        3rdprtylibs\chilkat

        Are you using stuff from http://www.chilkatsoft.com/[^]? We've been looking at their SSH component. What have your experiences been with them?

        Server and Network Monitoring

        M Offline
        M Offline
        Member 96
        wrote on last edited by
        #4

        Just the mail component. As a company they are excellent, we've been dealing with them for over 6 years now. It's a smaller company and they are very responsive and helpful should you need it.


        "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

        1 Reply Last reply
        0
        • W wout de zeeuw

          I'm looking of an installer for a .NET app. Nsis/innosetup might do the job, but I'm not convinced they handle .NET framework installs nicely for x86/x64 scenarios. So perhaps a commercial installer like Advanced Installer gives me peace of mind (still not that expensive). What are your experiences in this area?

          Wout

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #5

          I have found that with a little effort NSIS will work fine. A "detect .NET and download+install if not found" script can also be downloaded for it. It doesn't handle the x64 installer at all, but you could edit it to include it. However, it's likely that the majority of the x64 userbase is not computer illiterate and can find it on their own (if they didn't already have it), so I wouldn't worry about it too much.

          1 Reply Last reply
          0
          • W wout de zeeuw

            I'm looking of an installer for a .NET app. Nsis/innosetup might do the job, but I'm not convinced they handle .NET framework installs nicely for x86/x64 scenarios. So perhaps a commercial installer like Advanced Installer gives me peace of mind (still not that expensive). What are your experiences in this area?

            Wout

            R Offline
            R Offline
            realJSOP
            wrote on last edited by
            #6

            I'll install it, but you're going to have to pay my travel/lodging/food expenses.

            wout de zeeuw wrote:

            What are your experiences in this area?

            I don't know what area you're in, so I can't offer any information in that regard.

            "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
            -----
            "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

            W 1 Reply Last reply
            0
            • R realJSOP

              I'll install it, but you're going to have to pay my travel/lodging/food expenses.

              wout de zeeuw wrote:

              What are your experiences in this area?

              I don't know what area you're in, so I can't offer any information in that regard.

              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
              -----
              "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

              W Offline
              W Offline
              wout de zeeuw
              wrote on last edited by
              #7

              John Simmons / outlaw programmer wrote:

              I'll install it, but you're going to have to pay my travel/lodging/food expenses.

              I don't think I'll be selling any licenses if I tell my customers you'll be installing it... but hey, who knows!

              John Simmons / outlaw programmer wrote:

              I don't know what area you're in, so I can't offer any information in that regard.

              Planet earth mostly.

              Wout

              1 Reply Last reply
              0
              • M Member 96

                We use Inno for .net apps both winform and asp.net and both x86 and 64bit os, no problems, no issues at all. We've tried and used pretty much every other installer out there over the years and all were worse than Inno, harder to deal with and resulted in more support required for our end users. Nothing, commercial or otherwise, gives you smaller, faster, easier setups than Inno setup mostly because it *doesn't* use the windows installer API which is deeply flawed in many ways that cause aggravation both supporting an app with end users and developing an installer that simply does what you want when you want. In our setup we detect if .net is present and if not auto direct the user to the Microsoft page where it detects and installs the framework you need for your OS. These are the key bits for detecting .net and 64 bit os:

                {Check for the .net 3.5 framework}

                function InitializeSetup(): Boolean;
                var
                ErrorCode: Integer;
                NetFrameWorkInstalled : Boolean;
                Result1 : Boolean;
                begin
                NetFrameWorkInstalled := RegKeyExists(HKLM,'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5');
                if NetFrameWorkInstalled then
                begin
                Result := true;
                end else
                begin
                Result1 := MsgBox('This application requires the .NET Framework 3.5.'+#13#13+'Please download and install the .NET Framework and run this setup again.'+#13#13+'Do you want to download the framework now?',
                mbConfirmation, MB_YESNO) = idYes;
                if Result1 =false then
                begin
                Result:=false;
                end else
                begin
                Result:=false;
                ShellExec('open',
                'http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6',
                '','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
                end;
                end;
                end;

                {Check for 64 bit operating system}
                var
                Has64bitChecked: Boolean;
                Is64Bit: Boolean;

                function IsX64: Boolean;
                begin
                if not Has64bitChecked then begin
                Is64Bit := (ProcessorArchitecture = paX64);
                Has64bitChecked:=true;

                end
                Result:=Is64Bit;
                end;

                For the 64bit you use a Check flag in Inno like this:

                Source: "..\..\3rdprtylibs\chilkat\ChilkatDotNet2.dll"; DestDir: "{app}";Permissions: everyone-full; Check: not IsX64
                Source: "..\..\3rdprtylibs\chilkat\64bit\ChilkatDotNet2.dll"; DestDir: "{app}";Permissions: everyone-full; Check: IsX64


                "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                W Offline
                W Offline
                wout de zeeuw
                wrote on last edited by
                #8

                Thanks for your input John, you're gonna get a free license of my soon to be released app! :cool:

                Wout

                1 Reply Last reply
                0
                • W wout de zeeuw

                  I'm looking of an installer for a .NET app. Nsis/innosetup might do the job, but I'm not convinced they handle .NET framework installs nicely for x86/x64 scenarios. So perhaps a commercial installer like Advanced Installer gives me peace of mind (still not that expensive). What are your experiences in this area?

                  Wout

                  D Offline
                  D Offline
                  David Wong
                  wrote on last edited by
                  #9

                  If your a sadist and like xml type scripts then Wix is for you. There is a little bit of a learning curve and some things you have to hunt around for as there is no drag and drop type approach that some installers have. Wix supports x64, msi's, integrates with Visual Studio to build, can customise all dialogs etc. Have a look at the TortoiseSVN installer(checkout source) as they use Wix. Few links to get started: http://wix.sourceforge.net/[^] Wix Tutorial[^] Good Wix forum[^]

                  Richard Andrew x64R 1 Reply Last reply
                  0
                  • D David Wong

                    If your a sadist and like xml type scripts then Wix is for you. There is a little bit of a learning curve and some things you have to hunt around for as there is no drag and drop type approach that some installers have. Wix supports x64, msi's, integrates with Visual Studio to build, can customise all dialogs etc. Have a look at the TortoiseSVN installer(checkout source) as they use Wix. Few links to get started: http://wix.sourceforge.net/[^] Wix Tutorial[^] Good Wix forum[^]

                    Richard Andrew x64R Offline
                    Richard Andrew x64R Offline
                    Richard Andrew x64
                    wrote on last edited by
                    #10

                    David Wong wrote:

                    If your a sadist and like xml type scripts then Wix is for you.

                    Don't you mean masochist, not sadist?

                    D 1 Reply Last reply
                    0
                    • Richard Andrew x64R Richard Andrew x64

                      David Wong wrote:

                      If your a sadist and like xml type scripts then Wix is for you.

                      Don't you mean masochist, not sadist?

                      D Offline
                      D Offline
                      David Wong
                      wrote on last edited by
                      #11

                      You are a sadist if a fellow developer has to maintain said code, and you derive pleasure from their pain :-D

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups