Stall
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.
Getting Started
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.
Usage
The format of commands should be: stall -e program [-i icon] [options] folder
-e
is the executable of your program, e.g.YourApp.exe
.-i
is the icon file to display on shortcuts, e.g.icon.ico
. JPG and PNG are not accepted yet.folder
is 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 program
and 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).
Type stall --help
for more usage.
Example
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
Removing Apps
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.
Hiding Apps
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
Prerequisites:
- Git
- 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.
License
Stall is distributed under the BSD 2-clause license.
FAQ + Troubleshooting
Squirrel?
What's the difference between Stall andIn 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?
Stall has:
- no wizards
- no reboots
- no UAC dialogs
plus the points mentioned with Squirrel.
here, but Stall isn't in my PATH
.
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?
Try running
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.
Where can I contact you?
You can reach me on Twitter at @jameskodev, or /u/Subtle__ on Reddit.