I am looking for suggestions to an alternative setup application from Install Shield.
We are currently using Install Shield and I have never been impressed with it. It's way too bulky and the scripting system sucks.
Has anyone had any better luck with any of the other products like WiX, Inno Setup, NSIS or InstallAware, etc? I am not worried about the cost, but what I am looking for is a very lightweight, easy to use application to bundle up our .exe and about 20 support DLLs, registering a few, setting up some registry values and install help.
Can anyone recommend something they are using? It would be nice to hear from people who have switched from Install Shield as well, what makes the new app you're using better.
WiX is the only MSI packager that truly meets the requirement of "very light weight".
It may have a steep learning curve (which can reduced by using some frontend designers) but being backed-up by Microsoft makes it the primary choice for the .NET environment installations.
You can start with this list:
http://en.wikipedia.org/wiki/List_of_installation_software
There are also a similar question which may help you:
What are some good alternatives to InstallShield?
KMoraz already gave what would be my recommendation (WiX), so I'll just say this: Stay away from NSIS and other non-MSI-based installation systems. Yes, NSIS is customizable and scriptable as heck. But MSIs are well-established as the Windows package standard, and you don't want to stray from that standard unless you have an extremely unique reason to do so. Admins have come to rely on the homogeneity of MSIs and the robustness of their cleanups, and users have come to associate the Windows Installer UX with professionalism and quality. Think twice before you give up those advantages.
AdvancedInstaller looks like a reasonable option but have yet to try it out
https://www.advancedinstaller.com/ Still currently on InstallShield Express 2018 but since they've ditched the express products, InstallShield is far too expensive for what it delivers in my case.
Related
I am preparing to publish my software. I have created my own custom installer/uninstaller. I was wondering how I can have the uninstaller appear in "Programs and Features" under "Uninstall a program."
Thanks in advance
I guess the easiest tool to create a setup is Inno setup. The normal and recommended delivery method is using Windows Installer, but this technology is quite involved to deal with. If your tool is simple, perhaps just have a look at Inno setup and see if it gets the job done quickly for you. It's capable of installing and registering your application in add / remove programs.
Here is another thread: What to use for creating a quick and light setup file?
How can I create an automated Installer for a program that has a regular Installer with questions like:
Install Directory,
Accepting License,
Creating Icon on Desktop
etc...
Assuming that I am OK with building an Automated Installer for every program I want to separately, Or i want to put files in a Self Extracting Archive and run the Installer after unpacking.
Do I need a third party program for it? Should I use Command Prompt? Do I need to learn Lua? (I'm learning C#)
EDIT:
To clarify I'll use an example:
Let's say i wrote a program but that program has a requirement, like
DirectX, or Adobe Air, or Maxthon Browser.
I wrote my program in such a way that I have to be sure that that is
installed in a very specific Drive/Folder on the PC or with some
specific preferences/parameters.
I include an installer for this program, but I want to specify where
it gets installed on the PC and with what parameters.
Preferably Installing this requirement right after or during the
Installation/Extraction of my own program.
I'm looking for a way to be able to run the Installer of any given program and navigate through the install wizard of it with out the user having to/being able to change the settings I need (with the foreknowledge and permission of the user of course).
It doesn't need to be silent install or anything.
I have rewritten my answer.
Your mentioned setups requirements seem very common to me for the class of installation programs (setups) and not at all unusual.
Generally you have two options:
You write everything on your own, you create the install dialogs, the way the settings are saved, and so on. Then you are fine with C# (or any other language).
It is quite uncommon to do so, because it is time consuming, and you are reinventing things which have been solved in standard ways several times. Moreover you will fall in common setup error traps which are maybe already captured (or at minimum documented) if using tools.
If you want to use a tool, it is your first decision, if you want a tool based on MSI (Windows Installer) or not. MSI is the most powerful and most industrial-accepted setup technology in Windows, but it is a quite complicated matter, and no tool can shield this 100% from you. Google for WiX (Open Source) or InstallShield as starting points for MSI tools but there are of course more.
Some tools are already integrated or integrateable in Visual Studio for example.
Selfextracting tools are a starting point, but the following tools offer far more and are a good intermediate way between the extreme points SFX and MSI:
InnoSetup
(has also a home here on SO).
Nullsoft Scriptable Install System (NSIS) on SourceForge
One self extracting program in Windows I want to mention, because it is not widely known, that "IEXPRESS.exe" is already included in the OS.
Concerning your special question of navigating through the install wizard:
Every mentioned tool has ways to save install settings and of course is deciding which settings are changeable by the user part of the 1*1 of setup creation. With the tools you can design the install dialogs like you want consisting of the parts you want.
I hope I got your point.
P.S. While most tools have kind of a scripting language or something similar included, you are normally free to extend the installation process with your own actions written in nearly every programming language you like.
Firstly, I saw some topics about these two but weren't my answer.
I'm looking for a good FPC(Free Pascal Compiler) IDE on GNU/Linux.
There are some IDE's like Lazarus and CodeTyphon. I need suggestion to choose one of those.
I've tried Lazarus once but all windows was separated. It looks messy and not interesting.
I would like to know what are the distinguishes between these two ?
I would like to know advantages / disadvantages each of those. Thank you
CodeTyphon is a distro of Lazarus, like Ubuntu and Debian are distros of Linux.
CodeTyphon comes with a large package of components and plugins, that otherwise you would have to google and download and install.
CodeTyphon have their own idea what are stable versions and what are not stable yet for both of FPC (compiler) and Lazarus(IDE). Whether their assessment is better or worse than upstream's Lazarus Team's, I don't know.
What about one-single-window plugin, it is work-in-progress and it doesn't seems to me it is ready for production use, no matter would you get it as part of CT or download and add it to vanilla Lazarus. However maybe it better works on Linux than on Windows, I don't know.
There were however issues with code legality in CT grande bundle. It is widely believed that Orca (if I remember the name) violates copyrights of glScene/vgScene, which also happened in early Delphi FMX releases but was fixed by EMBA later. There also were disputes in FPC forums/wiki about CodeTyphon pirating some open-source components. See answer by Peter Dunne below.
Your question is akin to asking the difference between Linux and Ubuntu. Lazarus is an IDE/component library, based on FreePascal (FPC). And CodeTyphon is a distribution of Lazarus and FPC. So CodeTyphon is just one way to install a functioning installation of Lazarus.
Lazarus uses the same floating window design as older versions of Delphi. Installing from CodeTyphon won't change that.
Myself and several friends highlighted several licensing issues with codetyphon
most of which could have been corrected by sourcing the included files from known good source and ensuring the correct license headers were included
PirateLogic refused to correct the issues which means they are using code in direct violation of the original license terms
The fact its open source code does not change the fact they are pirating the code by not including the correct license even after the issue was highlighted
I also found several instances of copyright code included which appears to be proprietary and not FOSS at all
They also changed the path & file names on some libraries so that source is no longer compatible with standard lazarus/component installs
This in my view is totally illogical
These 2 factors heavily undermine what was potentially the best FPC/Lazarus distro
Hardly professional
Lazarus can be a daunting installation process due to it's nature as a cross compiling environment. You don't just download an installer and click ok. A typical "installation" is actually a bootstrap FPC compiler doing a three-pass compilation of an "install". There are plenty of good installation scripts/methods from the official Lazarus/FPC team and in the community for a . But, understandably, the installation process is a skill in itself.
CodeTyphon is a a different/separate branch of an installer system, which is more of a utility suite/tools/third party code compilation library. If you want the simplest installation experience go with CodeTyphon. It has the nice graphical front end for managing the compiler. You can conveniently do the fancy stuff like build "cross-compilers" for almost every "target" operating system out there. It also is jam packed with hundreds of the best components/libraries pre-installed. It is a very actively maintained project and very professional. A whole lot of work is done for you.
Even if you want to be learn the low level compiler capabilities, CodeTyphon is a good place to start. It is written in FCP/Lazarus and is open source. Simply study it as "working demo app" and the other info on the compiler details. If you crash it, at least you don't have to learn to climb the hill. You get to get to start from the top and lose control on the way down. Start from scratch (and a three hour reinstallation) Hahaha
Lazarus also has a package "AnchorDock" which allows you to dock all the windows into one. Either install the anchor dock design package after installing Lazarus, or install Lazarus using the script at getlazarus.org which will do it for you.
Our C++/QT desktop application for Mac, Windows and Linux needs an installer. I'd rather we have a single installer for all three platforms. I do know it's a bit tricky, I guess what I wanted ask is if a framework already exists for that (Java maybe?).
I'd really like to avoid having to write three different installers.
The link that Kyle mentions is pretty comprehensive, but I wanted to provide a bit more of information about InstallBuilder for Qt (Disclaimer, I am one of the developers) since most of the cross platform installation programs referenced there are Java-based. This requires bundling a JRE, etc. and adds a significant overhead that is not required with a Qt-based installer, like ours. It is able to generate wizard-like executable installers for all platforms from a single project file as well as native packages such as DEB and RPM. If you ship your software in DVDs, you can create a single multi-platform DVD that shares data across platforms but still have native launchers.
Having said this, since your application is Desktop-oriented, for the particular case of OS X if it does not require complex installation you may be better off creating a .app file and package it inside a DMG. Users can then drag the file directly to the Applications folder.
Finally, I wanted to mention that InstallBuilder is commercial, but we offer free licenses for open source projects and discounts for small development firms.
IzPack rocks: http://izpack.org. It is truly crossplatform, very lightweight, easy to master, and produces excellent results.
After fully integrating both Izpack and InstallBuilder into our builds (using Windows, OSX, and Ubuntu 14 build servers for testing purposes), I will say I believe InstallBuilder is well worth the money (and free for open source projects according to wojciechka).
Izpack is a bit slow, a bit large if you need to package a JVM, and has an amateurish user interface. Version 5 (release candidate 3) was also not generating uninstallers properly. That said, as long as you use a 4.x version and require a JVM anyway, it may be enough for your needs. The extension interface is not terribly easy to deal with, but is almost infinitely flexible. The Windows installers do not register with the Control Panel uninstaller list.
InstallBuilder has a great, fast UI in the produced installers and has a serviceable UI for creating installers. The XML is pretty easy to deal with, too. Downloads are about as small as possible. It also includes nice hooks for doing all sorts of custom stuff easily. The only slightly annoying thing I ran into was that the Windows server required that I manually add some configuration to set executable bits on the other systems' packages (other systems didn't require this configuration).
Note: I was using the three-platform version of standard InstallBuilder (not InstallBuilder for QT).
I want to change my OS to Ubuntu, but I have pending projects in Visual C++ and Visual Basic.
I have not worked with Ubuntu before, so will I be able to carry forward my pending work to Ubuntu? Will it work with the IDEs available in Ubuntu?
IDEs on Linux are generally for projects that work on Linux. If your projects use anything specific to MS (and Visual Basic is one such thing), you won't be able to work on them under Linux-specific IDEs. Even your C++ code might be using many Windows-specific tools, like MFC, C++/CLI or managed extensions, COM... Windows has lots of non-standard, non-portable things. So, answering your question: probably no.
You can install Visual Studio under Linux with Wine, but it will probably be an unpleasant experience: Visual Studio is a big application that strongly integrates with Windows, and Wine might not be able to emulate Windows well enough.
I would advice you to keep Windows until your work on these projects will be finished, dual-boot (install Ubuntu on another partition and boot it when you don't need to work on your projects) or install Windows in a virtual machine inside Linux (f.e. using VMWare Player or VirtualBox). I chose last option and with VMWare it is good enough for me.
The best options would be:
to use the wine emulator;
to install windows in a virtual machine (with VirtualBox);
to use MonoDevelop.
If those projects are targeted at Windows deployment, then you really ought to be developing them, or at least testing them, on Windows. That said, you could use a virtual machine to keep running Windows for work on those projects, and use Ubuntu otherwise.
If you decide to do this, I can't recommend making backups (plural!) highly enough before starting, in case you need to back out.
You can use WINE and run Visual Studio's on Ubuntu, the best option before a total conversion is to dual boot between windows and linux.
Visual C++: maybe. Depends on what kind of project it is. If it doesn't involve GUIs or MS-specific technologies like COM, .NET and company, you can probably port it with a minimum of effort. If it involves GUIs and/or MS-specific technologies, no it won't be portable.
Visual Basic: There is REALBasic which is claimed to be "like Visual Basic", but I'm rather dubious of its compatibility. (Whenever I see the words "migration tool" I get very nervous.)
That being said, you don't have to leave Windows completely behind these days. You can run WINE (if you really like pain -- I've never had WINE accomplish anything useful), or you can dual-boot or you can use something like VirtualBox to run Windows under Linux, all depending on your available resources and inclinations.
Sounds like you did not try it out: it won't work even with WINE it'll be a pain. To try out what will work or not install a virtual machine with Ubuntu as an OS under your current OS. YOu will be able to test things without breaking something.
I would suggest looking at the Mingw32 system. I have had excellent luck compiling Win32 applications (in C and C++) on a Linux system. So long as you're using the public Win32 API (basically, anything in windows.h), Mingw32 is a reasonably good choice.
You will probably not be able to use your Visual Studio solutions in Linux. Linux tends to avoid IDEs in favor of a system called Autotools. Having used both for many years, I have to say that on balance I prefer Autotools.
There is a steep learning curve involved in Autotools, but I feel the payoff is worth it. Good luck!