Ever downloaded a program that didn't come with an installer? Stall is a command-line tool that can automagically install, or remove, your favorite Windows desktop apps.
First, grab the latest release at https://github.com/jamesqo/Stall/releases.
After you've downloaded the binaries, open up CMD and run
cd Downloads mkdir Stall move stall.exe Stall cd Stall stall . -e stall.exe --script
Congratulations! You've just installed Stall using itself.
The format of commands should be:
stall -e program [-i icon] [options] folder
-eis the executable of your program, e.g.
-iis the icon file to display on shortcuts, e.g.
icon.ico. JPG and PNG are not accepted yet.
folderis your app's root folder. It should contain all of your app's files, e.g. DLLs and config files.
By default, the paths of
icon are relative to the root folder. If you wish to override this behavior, prepend
: to your path to make it relative to the current directory (or absolute).
stall --help for more usage.
Let's try installing an app in real life! As an example, ILSpy is one program that doesn't come with an installer. To install, download and unzip the binaries from their site, and run
cd ~/Downloads/ILSpy stall . -e ILSpy.exe -i ILSpy.exe
which should install ILSpy.
If you want it to show up nicely in Control Panel, you could alternatively run
stall . -e ILSpy.exe -i ILSpy.exe --project-url=ilspy.net -p IC#Code --releases-url=github.com/icsharpcode/ILSpy/releases -v 2.3.1
which shows up as
Have an app, or apps, installed that you'd like to remove? Running
stall -un names,of,the,apps
will uninstall them.
Unfortunately, the names of the apps need to be the ones listed in the Control Panel, so this is less intuitive than it sounds.
Stall also lets you 'hide' programs by running
stall --hide app,names
This will prevent the apps from showing up in the Control Panel, but won't actually uninstall them. Be warned however, this cannot be undone.
Building the Repo
- VS 2015
First clone the repo:
git clone https://github.com/jamesqo/Stall.git
Then open up Stall.sln in Visual Studio, toggle the configuration to Release, and build.
Alternatively, if you prefer a command-line interface, open up CMD and run
cd Stall msbuild /p:Configuration=Release
Once that's finished, the binaries should be in
Stall/bin/Release. Follow the steps mentioned above and you'll have a fresh copy of Stall installed.
Stall is distributed under the BSD 2-clause license.
FAQ + Troubleshooting
In short, Squirrel is meant to be a framework for self-updating apps. Stall can install apps without having to modify the code of the app itself, but doesn't manage app updates.
If your app requires a newer version of .NET to be installed (e.g. runs on .NET 4.6 but targets Windows 7), then you should probably use Squirrel as Stall doesn't offer that kind of functionality.
How does Stall compare to Windows Installer or ClickOnce?
- no wizards
- no reboots
- no UAC dialogs
plus the points mentioned with Squirrel.
here, but Stall isn't in my
I followed the steps
Usually, opening a new command prompt window should fix this.
What if my app icon is embedded in the .exe file?
stall -e YourApp.exe -i YourApp.exe path/to/YourApp
How do I upgrade to a newer version of Stall?
Just follow the steps in Getting Started, but run this at the end:
stall . -e stall.exe -s --overwrite
The --overwrite flag tells Stall to overwrite any existing files during the installation process, if needed.