How Windows apps are installed
There are two main ways to install Windows apps:
- EXE: executable (executable program,exe File)
- Microsoft Windows Installer ( MSI)
When it comes to MSI files, you have to talk about Windows Installer, which is not just a setup program, but also a scalable software management system. The purposes of Windows installer include managing the installation of software, managing the addition and removal of software components, monitoring file resiliency, and maintaining basic disaster recovery using rollback techniques. In addition, Windows Installer supports installing and running software from multiple source locations, and can be customized by developers who want to install custom programs. To use these features, you must go through the MSI file. The MSI file is a Windows Installer packet, which is actually a database that contains the information needed to install a product and the instructions and data required to install (and uninstall) the program in many installation scenarios. MSI file associates a program's constituent files with functionality. In addition, it contains information about the installation process itself, such as the installation sequence, the destination folder path, System dependencies, installation options, and the properties that control the installation process.
Win8 because of UAC, a 2869 error code appears when you install the MSI file. Although there is a workaround, you should use the Exe method.
Installing the authoring tool compare MSI
Advanced Installer
Microsoft Windows Installer, free trial
http://www.advancedinstaller.com/
Powerful and easy to use Windows Installer authoring tool.
Install, update and configure your products safely, securely and reliably.
Excelsior
"Create my installation MSI files which works pretty nicely and there ' s not a big learning curve at all."
http://installer.excelsior-usa.com/en/
Five apps for creating installation packages
http://www.techrepublic.com/blog/five-apps/five-apps-for-creating-installation-packages/
1. InstallShield Express : $650 (for the Express Edition)
2. Nullsoft NSIS Installer: Price of free for both home and commercial purposes
You can even take compressed ZIP files and convert them to EXE setups with a basic converter app called Zip2exe.
3. Installaware 16
4. Advanced Installer: Enterprise Edition for a cool $399
5. Inno Setup: Much like Nullsoft ' s NSIS installer.
Free Windows Installer Tool
1. Nullsoft NSIS Installer: Price of free for both home and commercial purposes
You can even take compressed ZIP files and convert them to EXE setups with a basic converter app called Zip2exe.
2. WiX
WiX is a open source collection of tools for generating Windows Installer packages.
It integrates well with Visual Studio. It works off a set of XML Setup declaration files. There is a definite learning curve but there was a book on it and documentation and examples on the Internet. http://wixtoolset.org/
Installer Features
What functions should the complete installation tool have, Refer to InstallShield Features:
Http://www.flexerasoftware.com/producer/products/software-installation/installshield-software-installer/tab/editions
The main functions are as follows:
- Support for latest Microsoft technologies:win10,win8.x,...
- Available in different languages
- Create Dpi-aware Installations
- Easily customize your installations
- ...
What DPI? The full name is dots per inch (DPI), which is the number of dots in each inch on the monitor, which is usually the 100% magnification by default on the window, but note that the value is not necessarily a true display physical value. Just one of our reference standards in Windows. XP has poor support for high DPI, and in most cases it is the enlargement of the font.
Basic Requirements for Java program installation
- BAT to exe
- Compression and packaging
- Jre
- Shortcut
- Unloading
NSIS (Nullsoft scriptable Install System) NSIS
Apache Tomcat Installer uses NSIS.
https://sourceforge.net/projects/nsis/
NSIS (Nullsoft scriptable Install system) is a professional open source system to create Windows installers.
It is designed to be as small and flexible as possible and are therefore very suitable for internet distribution.
HM NIS Edit
Https://sourceforge.net/projects/hmne
HM NIS Edit is the best editor/ide for Nullsoft
scriptable Install System (NSIS). Its useful for experts and beginner in
The creation of Setup programs with the NSIS.
NSIS in Eclipse
https://sourceforge.net/projects/eclipsensis/?source=recommended
EXE launcher for NSIs script Java programs
Http://www.cnblogs.com/zdxster/archive/2011/04/14/2015552.html
Name "Java Launcher" Caption "java Launcher" Icon "java Launcher.ico" OutFile "java Launcher.exe" Silentinstall Silentautoclosewindow trueshowinstdetails nevershowsection " Exec" Java-jar Test.jar "sectionend
One of the problems with the launcher above is that it opens a console window, because with Java commands, the console will not appear if you change to JAVAW. Another problem is that it is not robust enough to start correctly only if the Java or JAVAW command is in the current directory or on path. Maybe if you want to publish your program with a JRE, you won't be able to start the Java command for the system.
Here are the functions to find the Java command directory, in the order of
- The JRE subdirectory under the current directory, and if your publisher has a JRE, start it first.
- environment variable java_home specified directory
- in the registry, Hklm\software\javasoft\java Runtime environment holds the directory information for the installed JRE.
- directory in the current directory and system environment variables in path
Name "Java Launcher" Caption "java Launcher" Icon "java Launcher.ico" OutFile "java Launcher.exe" Silentinstall Silentautoclosewindow trueshowinstdetails nevershow section "" Call getjre Pop $R 0 ; Change for your purpose (-jar etc) StrCpy $ ' "$R 0"-jar test.jar ' setoutpath $EXEDIR execwait $0sectionend Function getjre push $R 0 push $ R1 clearerrors StrCpy $R 0 "$EXEDIR \jre\bin\javaw.exe" iffileexists $R 0 jrefound StrCpy $R 0 "" clearerrors Readenvstr $R 0 "java_home" StrCpy $R 0 "$R 0\bin\javaw.exe" iferrors 0 jrefound clearerrors Readregstr $R 1 HKLM "Software\javasoft\java Runtime Environment" "CurrentVersion" Readregstr $R 0 HKLM "software\ Javasoft\java Runtime environment\ $R 1 "" Javahome " StrCpy $R 0" $R 0\bin\javaw.exe " iferrors 0 jrefound StrCpy $R 0 "Javaw.exe" jrefound: Pop $R 1 Exch $R 0FunctionEnd
NSIs Compression ratio Comparison of three compression methods
Zlib (37.8%), bzip2 (35.0%), LZMA (30.2%)
Using zlib compression. EXE header size:60928/36864 Bytesinstall code:18857/63638 bytesinstall data: 96384144/254641558 bytesuninstall code+data:20906/34063 BYTESCRC (0x593db559): 4/4 Bytestotal size:96484839/254776127 bytes (37.8%) Using bzip2 compression. EXE header size:59904/35840 Bytesinstall code:18567/63638 bytesinstall data: 89185810/254641558 bytesuninstall code+data:20722/33994 BYTESCRC (0x3804e826): 4/4 Bytestotal size:89285007/254775034 bytes (35.0%) Using Lzma compression. EXE header size:59392/35328 Bytesinstall code:15467/63638 bytesinstall data: 76923448/254641558 bytesuninstall code+data:16643/31896 BYTESCRC (0xf22167e9): 4/4 Bytestotal size:77014954/254772424 bytes (30.2%)
Windows App Installation Tool survey report