GithubHelp home page GithubHelp logo

classicvalues / squirrel.windows Goto Github PK

View Code? Open in Web Editor NEW

This project forked from discord/squirrel.windows

1.0 1.0 0.0 79.82 MB

An installation and update framework for Windows desktop apps

License: MIT License

C++ 68.00% C 3.59% C# 28.41%

squirrel.windows's Introduction

Squirrel: It's like ClickOnce but Works™

Squirrel is both a set of tools and a library, to completely manage both installation and updating your Desktop Windows application, written in either C# or any other language (i.e. Squirrel can manage native C++ applications).

Squirrel uses NuGet packages to create installation and update packages, which means that you probably already know most of what you need to create an installer.

Getting Started

Check out the user documentation for how to use Squirrel. A good place to start reading is the Getting Started page, which includes a Quick Start guide.

What Do We Want?

Deployment and Updates for Desktop applications are a real drag. ClickOnce almost works, but has some glaring bugs that don't seem like they'll ever be fixed. So let's own our own future and build a new one.

Windows apps should be as fast and as easy to install and update as apps like Google Chrome. From an app developer's side, it should be really straightforward to create an installer for my app, and publish updates to it, without having to jump through insane hoops

Installation

  • Install is Wizard-Free™ and doesn't look awful (or at least, it should have the possibility to not look awful)
  • No UAC dialogs, which means....
  • ...installs to the local user account (i.e. under %LocalAppData%)
  • Uninstall gives a chance for the application to clean up (i.e. I get to run a chunk of code on uninstall)
  • No Reboots. None!
  • Can pull down the .NET Framework if need be

Updates

  • Updates should be able to be applied while the application is running
  • At no time should the user ever be forced to stop what he or she is doing
  • No Reboots. None!
  • The client API should be able to check for updates, receive a (preferably in HTML) ChangeLog

Production

  • Generating an installer given an existing .NET application should be really easy, like it is for ClickOnce
  • Hosting an update server should be really straightforward as well, and should be able to be done using simple HTTP (i.e. I should be able to host my installer and update feed via S3)
  • Creating an update for my app should be a very simple process that is easily automated
  • Support for multiple "channels" (a-la Chrome Dev/Beta/Release)

Building Squirrel

For the Impatient:

git clone https://github.com/squirrel/squirrel.windows
git submodule update --init --recursive       ## THIS IS THE PART YOU PROBABLY FORGOT
.\.nuget\nuget.exe restore
msbuild /p:Configuration=Release

Squirrel.Windows is a fairly typical C# / C++ project, the only special part is making sure to clone submodules via the command above.

How can I get involved?

Check out Squirrel#9 for more information about joining the Squirrel Slack room

squirrel.windows's People

Contributors

anaisbetts avatar willdean avatar patroza avatar peters avatar barrythepenguin avatar christianrondeau avatar kevfromireland avatar geertvanhorrik avatar mwcampbell avatar flagbug avatar johnthomson avatar jasoncitron avatar maxbrunsfeld avatar mikepavone avatar papamufflon avatar stajs avatar ran-intendu avatar charliehess avatar adill avatar amweiss avatar naishx avatar ionoy avatar ghiboz avatar allanrsmith avatar thughes avatar ribeiro avatar ogborstad avatar thieum avatar radiy avatar justinvp avatar

Stargazers

Classic Values avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.