Aggiorna automaticamente la libreria per .NET?

Sul Mac c’è una bella libreria chiamata Sparkle che i programmi possono usare per implementare la funzionalità di verifica / installazione per gli aggiornamenti automatici.

C’è qualcosa di simile là fuori per .NET? O solo regolare Win32?

    ClickOnce ha i propri limiti di sicurezza (in modo comprensibile). Se si desidera la piena potenza e il controllo di un’applicazione Windows, andare con il componente di aggiornamento dell’applicazione .NET . Funziona come un fascino ed è stato persino usato internamente da Microsoft per il loro gioco basato su .NET (non ricordo però il nome del gioco).

    Lasciatemi dire che offriamo una soluzione di aggiornamento completa che include:

    • Un programma di aggiornamento open source, wyUpdate , scritto in C #
    • Il controllo gratuito di AutomaticUpdater che puoi aggiungere al modulo dell’app
    • wyBuild è usato per creare patch e gestire le tue versioni

    wyUpdate gestisce tutti i problemi di Vista / Windows 7 UAC e tutti i problemi relativi ai permessi dei file che si presentano inevitabilmente quando si tenta di aggiornare software complessi.

    Detto questo, se vuoi creare il tuo programma di aggiornamento ecco alcuni suggerimenti:

    Costruire il proprio programma di aggiornamento

    Un buon punto di partenza è il codice sorgente di wyUpdate C # che ho menzionato sopra. Puoi cannibalizzarlo e usarlo per i tuoi scopi. Alcuni degli algoritmi in esso contenuti:

    • Supporto completo per UAC Windows Vista / Windows 7
    • Capacità per gli utenti limitati di controllare e quindi aggiornare se hanno credenziali
    • Supporto per la stravagante rete aziendale. (Se hai mai lavorato con una società questo è un vero problema).
    • Estrazione, patching e installazione rapidi dei file.
    • Supporto per il registro.
    • Ripristina i file e il registro in caso di errore o annullamento da parte dell’utente
    • Aggiornamento automatico (nessun file lasciato indietro)

    Abbiamo anche le specifiche del file qui .

    Aggiornamento automatico

    Poiché essere automatico è un requisito, lascia che ti dica come lo facciamo con il nostro controllo AutomaticUpdater .

    Utilizziamo pipe denominate per comunicare tra l’aggiornamento autonomo (wyUpdate) e il controllo Automatic Updater che si trova nel modulo del programma. wyUpdate riporta i progressi all’Aggiornatore automatico e l’Updater automatico può dire a wyUpdate di annullare il progresso, iniziare a scaricare, avviare l’estrazione, ecc.

    Ciò mantiene il programma di aggiornamento separato dalla tua applicazione.

    In effetti, il codice C # dei pipe con il nome esatto che usiamo è incluso in un articolo che ho scritto poco fa: app Multi-process C # come Google Chrome .

    ClickOnce è il mio metodo preferito. Ha alcune verruche, ma viene fornito con Visual Studio e funziona abbastanza bene.

    ClickOnce è molto utilizzato, ma puoi fare quello che ho fatto per una grande applicazione e provare questi:

    • Aggiornamento automatico dell’applicazione in VB.NET

    • Aggiornamento automatico dell’applicazione rivisitato

    Ho armeggiato un po ‘con la logica e ho costruito quello che pensavo fosse un file di aggiornamento XML migliore. Ora, quando ho bisogno di aggiornare i client, ho appena postare i nuovi file EXE o file DLL e impostare le versioni corrette nel file XML pubblico. La mia applicazione rileva le nuove versioni se è più vecchia e si aggiorna da sola. Se si esegue questa operazione su Windows Vista , è necessario richiedere le autorizzazioni di amministratore in modo che i File di programma possano essere scritti su (se ci si installa lì).

    Puoi anche convertire facilmente questo in C # usando C # / VB.NET Converter .

    Ho appena passato il processo e ho usato NetSparkle .

    Ha funzionato come pubblicizzato per un’applicazione Windows Form con un programma di installazione MSI che sovrascrive la versione precedente. Sono molto contento di averlo trovato anch’io – stavo per rotolare il mio. Sono l’unico a fare applicazioni .NET davvero semplici? Per lo più tutto ciò che ho guardato sembrava un completo esagerato.

    Non ho ancora provato NetSparkle (lo farò più tardi), ma sembra che sia quello che stai cercando.

    NetSparkle è un framework di aggiornamento software facile da usare per sviluppatori .NET su Windows, Mac o Linux. È stato ispirato dal progetto Sparkle per gli sviluppatori di Cocoa e dal progetto WinSparkle (una porta Win32 ).

    Penso che WyBuild sia una buona alternativa a Sparkle)

    Ecco una soluzione open source che ho scritto per rispondere alle esigenze specifiche che avevamo per le app WinForm e WPF. L’idea generale è quella di avere la massima flessibilità, al minimo ansible.

    Quindi, l’ integrazione è semplicissima e la libreria fa praticamente tutto per te, inclusa la sincronizzazione delle operazioni. È anche altamente flessibile e consente di determinare quali attività eseguire e in quali condizioni: si creano le regole (o ne si utilizzano alcune già esistenti). Ultimo ma non meno importante è il supporto per qualsiasi fonte di aggiornamento (web, BitTorrent, ecc.) E qualsiasi formato di feed – qualsiasi cosa non sia implementata puoi semplicemente scrivere da solo.

    Anche gli aggiornamenti a freddo (che richiedono il riavvio dell’applicazione) sono supportati e eseguiti automaticamente a meno che non sia specificato “hot-swap” per l’attività.

    Questo si riduce a una DLL, con dimensioni inferiori a 70 KB.

    Maggiori dettagli su http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

    Il codice è disponibile all’indirizzo http://github.com/synhershko/NAppUpdate (concesso in licenza con la licenza Apache 2.0)

    Ho intenzione di estenderlo di più quando avrò ancora un po ‘di tempo, ma sinceramente dovresti essere in grado di migliorarlo rapidamente per qualsiasi cosa attualmente non supporti.

    C’è una utility molto bella chiamata Updater . Sembra che sia scritto in C o C ++ . Sono stato in grado di configurare i file XML e caricarli sul server di produzione, quindi posso eseguire l’Updater e controllare il file XML per una versione diversa e scaricare un nuovo pacchetto di installazione di aggiornamento che ho creato utilizzando il sistema di installazione Script Nullsoft (NSIS).

    Abbiamo esaminato una serie di opzioni e abbiamo deciso di utilizzare l’aggiornamento di AppLife . AppLife Update può aggiungere rapidamente e facilmente funzionalità di aggiornamento automatico per le applicazioni .NET, ma è anche flessibile grazie alla sua API completa.

    Guarda l’elenco completo delle funzionalità e alcuni video dimostrativi sul loro sito web.

    DotNetAutoUpdate

    Ho implementato una libreria per fare ciò denominata DotNetAutoUpdate (nome originale eh?). Vuole essere:

    • Semplice da usare
    • Semplice da configurare
    • Sicuro

    Per l’aggiornamento delle applicazioni client .Net, dai un’occhiata all’AppLife Update . È molto flessibile, estensibile e personalizzabile.

    Disclaimer: sono associato all’aggiornamento di AppLife.