Windows terminal: create .exe installer from .exe and .nsi - windows

I have a kivy project in python.
I build an exe with Pyinstaller based on this project.
I have a .nsi compiled which builds me an .exe installeur based on the previous .exe.
Everything works !
I am actually scripting the proccess to make it easier.
PROBLEM: What is the line of command that build an .exe installer based on a .nsi and an .exe ?
(To be really precise, I want to replace the "open HM NSIS Edit software, find your file.nsi, right click on it, click on 'Compile and Execute'" by a command line on a Windows terminal)

Just pass the .nsi path to MakeNSIS:
"c:\Program Files\NSIS\MakeNSIS.exe "c:\mystuff\myinstaller.nsi"
It is possible to create extra defines with /D but you would know if your script requires this.

Related

How to build an installer for a python application for Mac

I have created a python application and can install it perfectly fine on Windows. I run pyinstaller to generate the executable, and then use NSIS to create an actual installer. I run the installer and it installs the application to my Program Files folder and gives me a nice desktop shortcut, etc.
What is the process to do the same for Mac? Essentially, I want to give my user a single file. When they run the file, it installs my program and any necessary libraries, and let's them launch it with a single click. I believe on Mac this is done with a .dmg or a .pkg file. What software/tools do I need to generate such a file? Do I need to restructure the project in anyway to create this?
For more info, pyinstaller creates a folder 'dist' which contains the unix executable of the application, and copies of python and any required libraries.
Note that I do not want to use the onefile option for pyinstaller because it would take a while to unpack everything each time the program is ran.

InstallForge, run a third party exe from the current directory?

I am building an installer using InstallForge.
Along with my install, i need to run some Third Party installers, for example, Cuda 9.1.
What I want is to create an installer, and a folder structure like this:
Installer.exe
InstallsDir
-Cuda.exe
-ThirdpartyInstall.exe
Then when my installer runs, it should also run the other two exe files.
In the setup process for InstallForge, it allows you to run commands, which i can use to run the exe files.
There is a command variable: <installpath>\ that is used to run a file from the path that my programme is installed to.
My question is, is there a similar command that i can use to run a file in the directory that the installer runs from?
How can i set a relative link to the current directory using InstallForge setup?

Advanced Installer: Installed .exe won't launch from installation directory

Using Advanced Installer, I have created and run a simple installer that contains a single .exe.
This .exe started as an executable jar (w/ splashscreen) and was built into a Windows .exe using Launch4j.
Once the application is installed (in C:\Program Files (x86)...), I can't execute it from the installation directory. However, if I copy the .exe to anywhere else, Desktop, or any other directories created by other installers, the .exe will start perfectly.
This appears to be a folder or application permissions issue. Comparing the permissions between this folder and the one created by Advanced Installer, the permissions and settings are identical.
The ONLY difference I see, between the installed .exe and the same .exe copied to another folder, is that the "Edit Permissions" button has an admin shield on it (one originally installed by AI).
Is there a setting in Advanced Installer that will allow my .exe to run once installed, or is this just trickery employed by AI to get you to pay for a more robust version? I am unable to make any changes in the OS that enable this file to run in the directory created by AI.
If the executable fails to run from Program Files but does works from another folder it most probably happens that your EXE needs write access to that folder. If you launch it with the option "Run as administrator" it should work. This is not caused by a limitation from Advanced Installer.
Starting with Vista onward you can embed a manifest file into an executable file, that specifies for the OS the execution level, so you can set the level to "RequireAdministrator", thus your will EXE will always behave as you launch it with the option "Run as administrator" when launched from a shortcut or double-clicked.
The cause of this error was that the target directory included an exclamation mark. "!".
I had switched to using InnoInstaller and it was working in an initial version, until I later switched the target dir to include the exclamation mark, and it was broken in the same way. (Removing it fixed.)
Have no idea why this was causing the problem, just an fyi.

I can't find my MinGW shell after installing with GUI installer

I used Mingw_get_inst and installed the MinGW compiler suite following the instructions on the howto page. I used the GUI installer. I then changed the path to include C:\MingW; . When I go to Start menu -> all programs -> MingW the only file that exists inside of there is a uninstaller. The howto page says a shell should be there... can someone help me get this working?
Howto page on Mingw.org: http://www.mingw.org/wiki/Getting_Started
simply you could run it from the following batch file:
e.g. C:\MinGW\msys\1.0\msys.bat (if you installed your mingw in c drive)
for more info. about mysys, check this
Look at the install logs for your Mingw.
I have 2 bin dirs in my (single) installation of Mingw
C:\MinGW\msys\1.0\bin
and
C:\MinGW\bin
A lot has changed about Mingw in the last 2-3 years and I think some documentation you might find easily via google is out-of-date.
Try asking for help at mingw mail groups via Nabble (very easy to use)
IHTH
Adding the shell link is easy if you have MSYS installed.
Open your Start menu and right-click on "All Program" and choose either "Open" or "Open All Users" depending on which you want to set the shortcut for. Open the MinGW folder if it already exists, or create it (or an MSYS folder, as you wish) if it does not.
Open another Explorer window and navigate to your MSYS folder, in the default installation this is C:\MinGW\msys\1.0
Right-drag msys.bat from the MSYS explorer window to the start menu explorer window. Choose "Create shortcut" when prompted as to what you wish to do. Optionally, you may want to change the shortcut to use one of the MSYS icons from the MSYS folder.
According to older MSYS documentation, the shortcut should be set to start in the MSYS bin folder, in the default installation this is C:\MinGW\msys\1.0\bin. I'm not certain of what happens if you don't do this; the shell opens either way.
Et voilĂ ! You now have a shell link for MSYS in your Start menu.
If you didn't have the shortcut, the other postinstall bits may not have run either. The easy way to check this is to look in C:\MinGW\msys\1.0\etc (or the appropriate path for your installation). If there is an fstab file, then the postinstall bits ran appropriately. If not, then go to C:\MinGW\msys\1.0\postinstall and run pi.bat. This will make the mingw folder available from the msys shell. Things won't work right without doing this.
Update from March 2018: The MSYS postinstall is now a Lua script, and it won't create a shortcut by default. Best I can tell, you now must do so manually in all cases.
Look for the postinstall directory, run the batch file pi.bat in there and
answer the file path questions with the correct case sensitivity.
Then gcc is found.
CNTRL-SHIFT click and drag the msys shortcut onto the desktop.
This fixes it.
Pity the installation script is broken...
Go to your windows search and go to Apps and Features and then search for it, you can find the file location and then you can probably see docs and other files :)

Building Inno Setup installer for MSI files

I'm building a deployment for a work environment, and doing it with Inno Setup. I wrap the other installers in one Inno-exe-File. It's working fine with other exe installers, but fails when it comes to MSI installers.
I don't know if there is any general problem, but it completely ignores my file association with the MSI exe (it works fine in Explorer, the association is ok).
Any ideas ? Probably there is some general problem..
Have the script launch Windows Installer just by executing the .MSI file will not work--the lookup of the default action to do when you open a file is done by the shell, but not automagically done by programs trying to launch things.
But the answer is simple: you just need to provide the msiexec.exe command line to launch them, something like this:
%windir%\system32\msiexec.exe /i <your_msi_filename> /qb-
Thanks to ewall I found this working for me:
Use a bat file for execution of all your MSIs, where you call each with full path, this way:
"C:\WINDOWS\System32\msiexec.exe" /i "C:\Programme\mySetup\tmp\InstallernameX" /qb-

Resources