Client application/Squirrel

Hi. Is anyone using Squirrel (https://github.com/Squirrel/Squirrel.Windows) for client application deployment? I’ve only found this thread http://help.octopusdeploy.com/discussions/questions/4613-squirrelexe, and it leaves a lot of open ends.

What I need to do:

Deploy the client application to the server.
The .config file should be processed by Octopus
The clients should autoupdate against their local server, getting the .config and new binaries.

I now have a home-hacked solution for this, but it’s not very robust, and I think Squirrel addresses most of the issues.

Their Nuget conventions differ (Squirrel needs everything in lib/net45), so we can’t really reuse the octopus package either. The flow would be:

Install package on server
Create new nuget from another nuspec
Run Squirrel releaseify
Move to known location on server.

This seems very convoluted to me, especially creating a new, different nuget. Have looked at forking Squirrel making it run against a folder instead, but I can’t really justify the time it would take (and would also make versioning, dependencies, etc, hard)

Has anyone worked this out, or are there other solutions I’m missing? (running a tentacle on each client doesn’t seem like the right solution, besides we have no guarantee they are even connected to the internet at all sites)

P.S This isn’t so much an Octopus question as a general question to the community.

Actually it’s an Octopus question. Let’s not pretend that .NET developers are not developing native apps anymore. Where is proper support?

Well, afaik Octopus has never promised to deploy to client machines, only server.

Implemented the hack above btw, and it’s slow and error prone, but works ok-ish. (did not modify squireel, made a command line app instead. Could probably be turned into a ps-script by someone more skilled than me)

I’ve implemented a custom solution for this. It also feels hacky, but it does work consistently. Basically our TeamCity server builds the binaries, including everything needed for releasify to work. Releasify is actually ran in the deployment process, and the results are put on the web server for clients to pull the latest version. You are right though, it’s very convoluted. I plan on re-vamping soon. I will do a write up on it (one day when I get time).