How to create an MSI installer using OS X? - windows

I already cross-compiled my program for Windows, I now have an EXE and a directory which must reside alongside that EXE in the same directory.
So I need to create an MSI, that places them in the appropriate place (whatever that is) and handles the uninstall too, in a way that is organic with the operative system.
There are Windows tools that do just that, but I haven't been able to find any for OS X. Is there any?
tl;dr:
I am on OS X
I cross-compiled my program for Windows
using OS X, I need to create an installer for Windows, such as an MSI
I DO NOT need to create an installer for OS X, such as a DMG or whatever. I need to create an installer -->FOR<-- Windows, such as an MSI.
I just "happen" to be trying to use OS X to do it.
Using Wine only counts if that program is known to run fine with Wine.
Using a Virtual Machine doesn't count since it is using Windows, which is what I ruled out in this question.

It seems that msi-packager is your solution.
"Build MSI (Windows Installer) packages on Mac and Linux."
https://www.npmjs.com/package/msi-packager

Would it be acceptable to create an EXE-based installer instead of an MSI?
I use InstallBuilder to build installers on OS/X. InstallBuilder is a cross-platform program. There is a version that runs on OS/X and builds both EXE installers for Windows (though I have not tried that combination), as well as DMG/APPs for OS/X.
The InstallBuilder documentation mentions that it cannot build MSIs, because InstallBuilder provides functionality for which there is no equivalent in MSI.
I suggest installing InstallBuilder on your Mac, selecting "Windows" as your output format, and see what happens.
InstallBuilder is one of the better installer builders that I've worked with. It's powerful and comprehensive. Not cheap though. At $995, it's till cheaper than spinning your wheels with WiX. There is a free trial version.

Although WiX is not available for OSX, there's a port of it using the wine library. You can find it in msitools as wixl which can easily installed through brew.
brew install msitools

It sounds like you're looking for the DMG Installer specification for Mac. It's a similar function as MSI in that it is a single file containing the install components needed for an app.
Keep in mind that Mac OSX apps are very different. They are more similar to Windows directories than EXE's. They contain a sub-folder structure which includes the components of the app. If you right click on a Mac app and select "Show Package Contents" you will see a "Contents" top tier folder with everything underneath the app. Just mentioning that as it greatly impacts the lack of need for an uninstall as you simply highlight an app and click delete to remove it and all of its components. There are exceptions of course, but Mac users appreciate when dev's stick to this format.
For DMG this link may help: Demystifying the DMG

Related

Tool for making Installer on MacOS

I am finding a way to making an installer for my program on MacOS, which has the capability to creating a good GUI installer and doing something pre and post installation like having the program run on startup, ...
(like InnoSetup on Windows http://www.jrsoftware.org/isinfo.php). I have found such a tool like this that is InstallBuilder https://installbuilder.bitrock.com/ but it is not free (and on my view has a high price). Does anybody knows a suitable tool for me?
Thank you so much
Whenever you need to create an installation package or distribution for Mac OS X 10.5 or later, Packages is the powerful and flexible solution.

How can I create an installation package for a Mac OS application without having a Mac?

I have a C# application that works great in Linux and Windows. Now I want to make an installation package for the Mac OS but I don't have anything running it in order to develop it / test it. The software is open source, so I don't want to put money into buying yet another laptop just to test it.
Is there a way to create some kind of installer / package for this C# application without actually needing to have a Mac? I even made a .deb package for Linux. Isn't it possible to somehow convert it?
It depends on how fancy you want to get with the installer. I'd start with something simple like building a package for Homebrew.
That's all command-line, though. If you think your Mac users would be unhappy installing an running from the command-line, you'll have to look into more sophisticated solutions. Mac GUI applications are traditionally built into .app bundles. Unfortunately for you, C# does not have lots of support for cross-compiling to the Mac. It's possible, but it's going to take a lot of trial and error, which will be way more frustrating without a test machine to see if you're doing it right.
You might try CPack (part of CMake). CMake doesn't really do C# (otherwise it'd be perfect for you), but you may be able to point CPack at the completed binaries and get it to bundle them up for the Mac for you. You could also use CMake/CPack to build a dummy Mac application and then you'd be able to swap out all the pieces for your own binaries.

Preferred Mac OS X installer

I need your help in choosing a Mac OS X installer version for my application, since I'm not a native Mac user (I am a Windows user).
As far as I know there are two popular installer versions: the regular setup wizard, and the one that uses a window in which you drag the file into the applications folder. Which is preferred and why?
If your application is entirely self contained with all its resources bundled in a single .app package (which is the preferred structure for Mac applications) then use drag and drop installation. If it isn't possible to bundle your application in this way then use an installer .pkg.
There may be other solutions that are appropriate for certain types of application. For example I develop a large Java application that runs on many platforms (including Mac) and we use IzPack to build one installer JAR that works on all platforms. We then package this up as an .exe for Windows users (using Launch4J) and as a .app bundle for Mac users.
If you are not familiar with command line tools or simply not inclined, I would recommend two different IDEs:
Packages - a free and great way to create OSX Installer packages. It is simple to use out of the box, but has great depth for conditional installs.
http://s.sudre.free.fr/Software/Packages/about.html
DMGPackager - shareware - a simple app to create DMG with optional backgrounds, licenses etc.
http://www.skoobysoft.com/utilities/dmgp.html
If you want to distribute, it would be best to sign the installer.

Can an Adobe AIR app be installed on a completely clean Windows system without the use of an install package?

All of the documentation I have seen regarding distribution of Adobe AIR apps suggests that an installer is required to be run in order to get the runtime and the app onto a system.
The environment I am working in requires the AIR runtime, the AIR app and associated DLL's (it will be calling Windows native processes) to be transferred to a clean system and this needs to happen without running an install package. Ideally in the form of just copying the necessary files (DLL's, resources etc..) to where they need to be. Scripts can be used for tasks like adding registry keys and similar requirements. The build needs to be automated in the form of a copy, hence why no installer packages are suitable.
Does anyone know whether this is at all possible with Adobe AIR? Note, the app is Windows-only so cross platform is not a requirement.
Thank you in advance for your help
I'm adding more details in this answer.
In order to use NativeProcess your app must be an EXE compiled by ADT using "extended-desktop." I didn't find much documentation ont his, but a normal air app installs silently like this
C:\AdobeAIRInstaller.exe -silent -eulaAccepted "C:\yourApp.air"
Since the ADT compiled EXE already contains air, you can acutally just do this
C:\yourApp.EXE -silent -eulaAccepted -location "\"C:\WhereToInstall\""
I don't believe you need a redistributable license to do this... but I could be wrong. It's easy to get and free so you might as well.
Where yourAPP.EXE is the extended desktop AIR app compiled by ADT. For compiling an EXE by ADT see: http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html
No; this won't be possible. You'll have to install the AIR Runtime on the Windows machine to run an AIR app. And I expect the AIR app won't actually run w/o running the AIR App installer.
You may be able to look into alternate non-AIR options to turn SWFs into EXE. Zinc is one such software to do that.
Or it is possible you can create an invisible installer. I believe if you sign up for redistribution of the AIR Runtime there is a way to make the runtime installer "invisible". I'm not sure about the app, though.

I have an exe setup file. I want to make it compatible with Mac OS

I have an exe setup file. I want to make it compatible with Mac OS. Is there is any way through which we can convert an EXE to DMG, APP or a Jar?
No, you cant, you need to recompile the application for the target platform.
Nope*.
Moreover, if the contained software is compiled for Windows, it won't work on Mac.
If may work only if it is script-based (like in ruby, python, etc.). But usually, you'll have a proper Mac installation package when it is compatible.
**Exception*: some EXE are extractible archives, but it won't change the incompatibility if it is compiled for Windows.
The simple answer is to install software on a Macintosh OS you must recompile it down to a .dmg file. I jumped on Google and this article Creating a Mac OS X App from a Jar File was the second choice. The default Mac OS Java version was 1.5 for Leopard. Target 1.4+ and you should cover systems from at least Leopard and upwards.
As an aside, this tutorial was recently updated for Snow Leopard and covers the same stuff. Best of luck in getting it ported.
There are different distribution for Mac with have java6 and below version, for java 7 and 8 you need to make another app to run and compatible with
I did it on my way:
Create exe/ setup for your jar.
follow the link ---> winebottler.kronenberg.org
download winebottler(GUI based tool) for your mac type and simply follow this link below
https://www.youtube.com/watch?v=imPGlqEuYBk
No extra burden for you to how.
Note: This will pack your setup in app but app size will increase.

Resources