Programmupdate vom Internet

  • VB.NET
  • .NET (FX) 4.0

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Programmupdate vom Internet

    Hallo,

    es gibt zwar schon Threads dazu, aber von 2010 und nicht wirklich sauber programmiert, meiner Meinung nach. Deswegen starte ich einen neuen Thread.

    Meine Anwendung soll die Möglichkeit haben, nach eigenen Updates im Internet (fester Link zur Cloud) zu suchen und diese runterzuladen und zu installieren.

    Wie sucht man eine Datei im Link, wenn man nicht weiß, wie der genaue Name ist (die Versionen werden ja unterschiedlich sein)? Mir fehlt einfach die richtige Vorgehensweise.

    Theoretischer Ablauf ist mir klar: erst schauen, welche Version die Datei hat (aus dem Namen rausschneiden), dann mit der eigenen Version (AssemblyInfo oder so) vergleichen, wenn neuer, dann runterladen.
    Ich nehme an, eine .exe ist problematisch runterzuladen, weil sie in den Firmen nicht durch Firewall kommt. Wenn man ein .zip runterlädt, kann man es aus meinem Programm heraus entpacken lassen? Dann soll der Setup nach Wunsch gestartet werden. Wie macht man es denn aus der laufenden Anwendung? Es werden ja Ordner erstellt, die es im Endeffekt schon gibt. Kann man einfach die Setup-exe mit Process.Start starten und dann die eigene Anwendung gleich schließen?

    Danke.
    Moin,

    schaue Dir mal das Updatesystem.NET an.
    Das kann das automatisiert und Du musst Dir nicht die Mühe machen es selbst zu schreiben. Das ist gleichzeitig sicher. Allerdings sprichst Du die Cloud an, heißt also, dass Du keinen Zugriff via FTP oder Ähnliches hast?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Keine Ahnung. Derjenige hat Cloud erwähnt, er meinte, er weiß noch nicht, auf welchem Server es liegen wird. Allerdings kann er mir einen fixen Link garantieren.
    Zur Zeit liegt es wohl am FTP.

    Dein Programm will doch signierte Pakete und so? Ich glaube nicht, dass wir irgendwas damit machen, es wird einfach eine Datei hochgeladen.

    EDIT: Ach so, es ist ja nicht deins, es ist das von Microsoft. Braucht man dafür FTP?

    @Trade
    Da steht, bis Windows 7. Es gibt aber viele Kunden mit Windows 8...

    WhitePage schrieb:

    Dein Programm
    ... ist noch in Entwicklung. ;) Ist außerdem ne Lib. :P

    WhitePage schrieb:

    es ist das von Microsoft

    ... nein, ist von einem privaten Entwickler.

    Ja, Du brauchst FTP(S), um die Dateien hochzuladen auf den Server. Übrigens geht das alles vollautomatisch.
    Es geht auch mit Windows 8, der Dev hatte das nur nicht aktualisiert, zu alt schon, denke ich.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wenn die einen FTP(S)-Zugriff haben, dann können die das automatisiert mit der Administration hochladen.
    Falls nicht, musst Du wohl oder übel das Teil selbst schreiben und die jeweils ne Signierung mitliefern.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Trade schrieb:

    mit der Administration hochladen.

    Was meinst du denn damit?

    Trade schrieb:

    ne Signierung mitliefern.

    Welche Signierung jetzt?
    Müssten diejenigen, die hochladen, auch dieses Updateprogramm aus deinem Link verwenden, damit es signiert wird?

    Irgendwie verstehe ich überhaupt nicht, wie das Ganze ablaufen soll. Datei hochladen, Datei runterladen, ausführen - das ist das, was ich verstehe...
    Die Administration ist ein Programm, mit dem die Pakete erstellt werden und dabei wird das alles automatisch hochgeladen etc., auch signiert.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ja. Wenn Du dafür zuständig bist, dann musst Du denen das halt sagen. ;)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    jo, ich befürworte auch, eine vielfach praxiserprobte Fertiglösung zu bevorzugen - vlt. gibts ja auch annere Lösungen als Updatesystem.net - komisch eiglich dass immer nur dieses eine genannt wird.

    Zum Selberbasteln - auch wenn ichs garnet befürworte - würde ich mir konzeptionell vorstellen, dass auf dem Server ein Inhaltsverzeichnis liegt, was zunächstmal analysiert wird, und im Abgleich mit dem lokalen System wird dann ein Update-Plan generiert.
    Wenn man es selber macht braucht man diesen Plan, eine Konfiguraton, die Infos zu Paketen (Url, Version, Signatur, ...) speichert und die wird dann ausgelesen und entsprechend das ausgewertet. Würde dafür JSON verwenden.

    Ich sage es Dir aber gleich: Flexible Systeme dauern ihre Zeit.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also, ich habe jetzt mit Admin gesprochen. Bisher wird nichts signiert, es ist aber geplant, dafür ist aber wieder eine externe Firma zuständig.

    Die Dateien werden auf einem FTP-Server liegen, der Link zum Ordner ist fest, da muss ich nichts analysieren, nur die Dateinamen, die da liegen (um Version zu überprüfen).

    D.h. ich muss mit dieser externen Firma besprechen, wie sie das signieren bzw. wie ich das überprüfen soll.
    Eine externe Firma? Oo
    Sowas ist doch total leicht machbar.

    Außerdem würde ich immer noch was fertiges nehmen.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Überprüfen musst Du schon beim Downloaden, sonst bringt es ja nichts.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Was hat es damit zu tun? Ich habe doch geschrieben, dass das gleiche Programm (z.B. dieses Updatesystem.NET) die Überprüfung vornehmen muss, welches auch das beim Hochladen signierte: es gibt ja 2 Teile davon - eins für die Administration (wäre dann bei der externen Firma) und eins für mein Programm als Updatecontroller.
    Achso, ja, hatte Dich falsch verstanden.
    Genau, so ist das richtig.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: