Zitat:
Aber auch mit meinem Setup-Erstellungsprogramm wollte ich eigentlich Ressourcen erzeugen und ins Setup-Programm einbinden. Was wäre deiner Meinung nach der Vorteil, das anders zu machen?
Der Hauptvorteil ist meiner Meinung nach, dass du die Setup.exe nicht jedes mal neu kompilieren musst. Es gibt aber bei jeder der beiden Varianten einen gravierenden Nachteil: Jede Setup.exe hat einen anderen Inhalt. Das wirkt sehr verdächtig auf Virenscanner. Aus dem Grund fahre ich aktuell 2-gleisig: Einmal mit den Ressourcen in der Exe wie bereits beschrieben (wird aber immer weniger), und alternativ dazu (immer öfter) eine separate Daten-Datei. Diese ist wiederum eine ZIP-Datei, nur mit Dateierweiterung ".dat".
Der aktuelle Trend geht bei den Installationsprogrammen dazu, dass man die Setup.exe so klein wie möglich hält, und die zur Installation erforderlichen Daten erst vom WEB herunter geladen werden. Das ist der Grund, warum ich die Variante mit separater Datendatei derzeit favorisiere. Der Hintergrund ist auch verständlich. Kein User mag mehr einige Minuten warten, bis die Installation beginnt. Eher wird akzeptiert, wenn die Installation sofort beginnt, und dafür die Installation ein paar Minuten länger dauert.
Darum teile ich derzeit die Daten zum Download auf mehrere Dateien auf. Während das Installationsprogramm auf User-Eingaben warten muss, oder Dateien entpackt, werden in einem separaten Thread im Hintergrund die Dateien von meinem Webserver heruntergeladen. Und das finde ich, ist das Hauptargument GEGEN eine einzige Setup.exe mit integrierten Ressourcen, egal in welcher Form.
Aber, das ist eine Design-Frage die letztendlich jeder für sich entscheiden muss. Wobei ich hier der Meinung bin: Wenn man schon kein Setup von der Stange verwenden möchte/muss/kann, dann sollte man sich schon die Zeit nehmen, es gleich vernünftig zu machen. Und darum würde ich bei einem neuen Projekt in jedem Fall eine Lösung mit einer (oder mehreren vom WEB nachladbaren) Datendatei(en) bevorzugen.
Eine für den User sehr viel Zeit sparende Lösung wäre, die Zwischenspeicherung "als Datei" völlig abzuschaffen. Ich teste das gerade...mit einem Memory-Stream als Zwischenspeicher/Datenpuffer.