At the end of the day, here's how a developer will use Squirrel:
- Add the Squirrel package to your application
- As part of the install for Squirrel, NuGet Package Build is enabled in the csproj file
- The user edits the generated
.nuspec
to specify some details about their app - From the NuGet package console, run
Squirrel --releasify
- this builds the world, and you end up with a$SolutionDir/Releases
folder that has both a Squirrel release package as well as aSetup.exe
As part of adding Squirrel to your application, a targets
file gets added to your csproj file. This targets file dumps all of the references in your application to the output directory in a simple text file, as well as a list of files marked as content.
Calling Squirrel --releasify
results in this process being kicked off:
- For the current project, build release and delta packages.
- Create a Zip file consisting of
update.exe
and the latest full release fromReleases
. - Using Win32 API Abuse™, put that into
setup.exe
, a C++ bootstrapper application whose sole goal is to download .NET 4.5, install it, then run update.exe - Copy that to the Releases folder.