GithubHelp home page GithubHelp logo

topshelf.squirrel.windows's Introduction

Topshelf.Squirrel.Windows

What is this?

Extension of the framework Topshelf, which allows out of the box to introduce a system of auto-update Squirrel.Windows.

Used projects:

NuGet Packages

Install-Package Topshelf.Squirrel.Windows

Quick start

For a quick start, you can use the project template. This will get a working Windows-service with auto-update from out in the box. To do this, copy the project template to the templates directory (%USERPROFILE%\Documents<Visual Studio version>\My Exported Templates). The next step is to create a project through the master of creating a new project in Visual Studio.

topshelf.squirrel.windows's People

Contributors

kibnet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

topshelf.squirrel.windows's Issues

Service isnt updating

Hi,

The service is downloading the new update files, but it is not updating the services,

Is there a step in your template that i am missing.

Regards

Tahid Miah

How does it work?

Would be great to add a section to the readme to explain at a high-level how this works?

Service isn't updating

I'm trying to better understand the workings of this rather intriguing piece of code.

As it is, the service isn't updating. I've duplicated your configurations, e.g. SquirrelAwareApp, double-check Releases path, etc.

I should note that the service is throwing an exception during stop:

Failed to stop service. System.InvalidOperationException: An unhandled exception was detected ---> System.Exception: You must dispose UpdateManager!
at Squirrel.UpdateManager.Finalize()
--- End of inner exception stack trace ---
at Topshelf.Runtime.Windows.WindowsServiceHost.OnStop()
at System.ServiceProcess.ServiceBase.DeferredStop()

Paul recommends keeping UpdateManager around only for the duration of the actual updating action, as noted here. (At first I'd thought that this Disposing error only occurred during Debug, but now I see that it's happening even during Release.)

  • I see here that you're updating the app, but doesn't the Squirrel construct require a restart to apply an update?
  • Is this the call that performs the actual update? How do we get that to run? Should we be hooking into the Squirrel events, since this is a SquirrelAwareApp?
  • Where does the code modify the service's registry entry to point to the new release? Does Topshelf handle that?
  • What is the purpose of WithOverlapping?

That said, my test service isn't even acquiring the latest release from the distribution folder. I don't know whether that's related to the Disposing error discussed previously, but I probably doubt it.

Nice work on this. I'd like to contribute, but I'm not very handy with C# I'm afraid.

squirrel --releasify

Hi,

Not an issue specifically related to the project but I was wondering what you use as the installer for your TopShelf service. I tried following the squirrel --releasify path but it creates a setup file which tries to install the packaged services as a .NET desktop app (for what Squirrel was originally created). So I'm not sure what type of files I should be creating. Would I need to just put my .exe and .dll's in a web folder (eg. http://.../releases)? Or what should I do actually?

Thanks in advance!

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.