Ort der ersten installation ermitteln

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Ort der ersten installation ermitteln

    Hallo!

    Ist es möglich nach der Installation einer Click-once Anwendung den Ort der ersten Installation zu ermitteln, also nicht der Application.Startuppath, sondern der Ort, an dem die Setup.exe ausgeführt wurde (z.B. auf dem Desktop)?

    Viele Grüße

    LABUNI
    Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht.

    LABUNI schrieb:

    mit "Setup programmieren"
    Nicht Mit Setup programmieren, sondern das setup-Programm selbst programmieren.
    Solltest Du nicht tun.
    Wozu musst Du dessen Pfad wissen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ​Wozu musst Du dessen Pfad wissen?
    Das frage ich mich auch.
    ​Nicht Mit Setup programmieren, sondern das setup-Programm selbst programmieren. Solltest Du nicht tun.
    Kann sein. Auf alle selbstgeschriebenen Programme reagieren die Virenfinder grundsätzlich angekotzt. Das würde nur andere abschrecken, so dass erst zu gar keiner Installation kommt :P

    Grüße, ExteNesia.de
    Ich möchte den Pfad wissen, weil ich ein Programm geschrieben haben, welches von einer Firma genutzt wird, von der ich immer mal wieder Veränderungswünsche zugeschickt bekomme.

    Bislang nehme ich die Veränderungen vor, veröffentliche die neue Version und gebe dem Admin der Fa. einen Downloadlink. Dann installiert er die neue Version auf allen Computern, die das Programm benutzen.

    Das ist zu umständlich.

    Ich habe jetzt eine Updatefunktion geschrieben. Die neuen Dateien lade ich auf einen FTP-Server und setze die Versionsnummer des Programms in einer Mysql-Datenbank hoch. Dies hat nun die Folge, dass das Programm die neuen Dateien vom FTP-Server runterlädt und die setup.exe ausführt - das Programm ist dann geupdatet. Das funktioniert auch schon alles. Allerdings funktioniert dies nur dann, wenn die setup.exe Datei genau an dem Ort ausgeführt wird, von dem das Programm das erste Mal installiert wurde, ansonsten bekommt man eine Fehlermeldung. Dies möchte ich variabler gestalten.

    ... kann man das verstehen?

    Viele Grüße und vielen Dank für das Interesse.
    Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht.

    LABUNI schrieb:

    Dies hat nun die Folge, dass das Programm die neuen Dateien vom FTP-Server runterlädt und die setup.exe ausführt - das Programm ist dann geupdatet.
    Das klingt äußerst gefährlich. Nutzt bitte unbedingt HTTP(S) als Protokoll und signiere Deine Binaries. Wenn ich Dir die setup.exe beim Herunterladen (oder schon vorher) mit Malware austausche, dann wird diese unverifiziert ausgeführt.
    Updater - Warum sollte man eigene Updater vermeiden?
    mywiki.wooledge.org/FtpMustDie

    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 du ein AutoUpdate brauchst, mach doch zu jedem Programm eine version.txt und mache auf einer Webseite eine version.txt. Beim Start des Programms wird der Inhalt von die Online-Version mit der Programm-Version verglichen und wenn die Online-Version höher ist, startest du die Update.exe und alle Daten bis auf die Update.exe werden gelöscht. Dann lädst du die neuen Dateien von der Website runter und startest das Hauptprogramm wieder und dann beendet sich das Programm selber. Dann könntest du die MsgBox.exe starten, dort steht dann "Your Program was just updatet" oder so. Übrigens würde mich interessieren, für welche Firma du das Programm geschrieben hast.

    Grüße, ExteNesia.de
    Das bringt ihm nichts. Solange die Binaries nicht vernünftig gesichert sind, ist der ganze Updateprozess unsicher.
    Und Textdateien sind vielleicht nicht ganz optimal. Man sollte für ein richtiges Versionierungssystem eine eigene Klasse implementieren und diese serialisieren. Dafür eignet sich XML und JSON ganz gut.

    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 :!:
    Vielen Dank für die sehr kompetenten Antworten!

    Es spielt sich alles in einen Firmennetzwerk ohne direkten Internetzugang ab (Ebenfalls der FTP-Server und der Rechner, an dem ich das Programm schreibe). Internet gibts nur über Citrix und ist äußerst begrenzt. Keine Down- oder Uploads von Dateien der Clients.

    Viele Grüße
    Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht.
    @LABUNI Da sollte es doch einen IT-Verantwortlichen geben, der Dir konkret sagen kann, wie generell dort Installationen gehandhabt werden.
    Da solltest Du kein eigenes Süppchen kochen dürfen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo RodFromGermany!

    Den gibt es auch, mit dem hab ich das abgesprochen - schließlich möchte er nicht mehr die Software jedes Mal auf jedem Computer einzeln installieren.

    Noch mal zurück zur Ursprungsproblematik. Wie komme ich nun an den Pfad der ersten Installation auf eine sichere Art, ohne Sicherheitslücken zu produzieren?

    Übrigens steht in der Fehlermeldung genau dieser Pfad, den ich brauche - er müsste demnach ja irgendwie auch sonst abrufbar sein.

    Viele Grüße
    Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht.
    @LABUNI Wie gesagt: Da kommst Du nicht ran.
    Ihr müsst eine interne Firmen-Richtlinie erstellen, nach der diese Einstellung nicht verändert werden darf, dann wäre gesichert, dass immer derselbe Pfad verwendet wird.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!