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 Offline
    W Offline
    wout de zeeuw
    wrote on last edited by
    #1

    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 L R D 4 Replies 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

      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