0

I just discovered what seems to be a very nice, minimal installer called Squirrel for Windows from a dotNetConf 2015 video.

The opening documentation sounds fairly inclusive as to what can be packaged:

Squirrel is both a set of tools and a library, to completely manage both installation and updating your Desktop Windows application...

However, everything I've seen in the documentation and elsewhere points towards requiring an existing .NET application in Visual Studio.

Can the build files targeting the Windows platform in Unity3d be packaged using Squirrel?

Arsen Khachaturyan
  • 7,904
  • 4
  • 42
  • 42
Feckmore
  • 4,322
  • 6
  • 43
  • 51

1 Answers1

3

Should be fine. I've got it working without an existing .NET application, in fact, at the moment I don't have Visual Studio installed. You will need the .NET runtime, but squirrel itself seems to ensure that (though I think I already had it).

I haven't built and posted the releases yet, but my Qt project builds fine from the command line. (I used the atom project as an example, they also aren't a Visual Studio project).

I logged what I did in a blog post: http://markwal.github.io/programming/2015/07/28/squirrel-for-windows.html

But basically:

  1. Install the standalone nuget.exe (#4 download link): http://docs.nuget.org/consume/installing-nuget
  2. Install squirrel.windows release from github: https://github.com/Squirrel/Squirrel.Windows/releases
  3. Create a .nuspec file describing the project (as per the docs on github, tell nuspec everything belongs in lib/net45, don't worry, it won't install there and it doesn't mean you're building a .NET app.
  4. Run nuget.exe on that nuspec to make a nupkg
  5. Run Squirrel.exe --releasify on that nupkg

Should make a releases folder with a setup.exe in it. That's all that needs to be in the release. The other stuff there (full and delta nupkgs) are for posting on a server for auto updating. In the documentation skip the stuff about loading the assembly and registering for events. For non .NET everything happens through command line arguments, so scroll down farther in the docs.

Mark Walker
  • 279
  • 2
  • 6