2011-08-19 6 views
0

J'ai le besoin un peu ridicule de fournir à un utilisateur final un moyen TRÈS facile d'extraire un répertoire de programme à partir de Program Files sur son système dans un auto-extractible fichier qu'ils peuvent utiliser pour répliquer le répertoire sur d'autres systèmes.Meilleure façon de compresser un dossier dans un fichier EXE pour le réutiliser dans Windows

Je me demande quelles sont mes options pour fournir ceci aussi près que possible d'un clic. Les utilisateurs finaux ne prendront pas la peine de les compresser eux-mêmes, etc.

Ces utilisateurs ont ce besoin car notre société n'a pas archivé les anciennes installations pour un temps considérable et la mise à niveau n'est pas toujours une option.

Répondre

1

On dirait que vous travaillez sous l'illusion que vous pouvez simplement copier un répertoire à partir de Program Files sur une machine, dans les Program Files sur une nouvelle machine, et cela devrait fonctionner.

La plupart des logiciels Mac fonctionnent de cette façon, et ce serait bien si tous les logiciels fonctionnaient de cette façon. Hélas, les installateurs Windows installent souvent divers fichiers dans divers endroits, mettent des informations critiques dans les entrées du registre Windows et ont d'autres mécanismes d'enregistrement et d'antipiratage tels que le programme ne fonctionne pas sur la nouvelle machine.

Voir « Is it possible to clone only the software on a machine? », « Copy all installed programs & files in a hard disk (which has 32 bit Windows 7) and clone/transfer it to another computer which has 64 bit Windows 7 », « Is there a way to clone an NTFS hard drive but leave some files out? », etc.

Si vous savez en quelque sorte un fait que votre application ne dispose pas de ces dépendances externes et fonctionne très bien sur la nouvelle machine après copier seulement le dossier, alors peut-être vous pouvez:

  • faire une version « maître d'or » de cette demande (peut-être dans un fichier auto-extractible exécutable) sur votre serveur de fichiers ou sur un CD ou les deux, et l'utilisation que version principale à installer sur tous les nouveaux ordinateurs. Cette approche garantit que le «maître d'or» est exempt de virus qui ont été créés après la création du «maître d'or».

Ou

  • Puisque vous connaissez déjà le nom du dossier de votre application, comme le suggère mtijn, faire une batchfile qui appelle un archiveur avec ce nom et les arguments de ligne de commande appropriés pour compresser dans un exécutable auto-extractible. Placez le fichier séquentiel et le programme d'archivage sur une clé USB; peut-être rendre le programme batch automatique. Il existe une variété d'archiveurs qui seraient plus qu'adéquats - l'un des winrar, UPX, WinZip, 7-zip, IExpress, ou tout autre archiveur pratique qui prend en charge self-extracting archives.
+0

C'est mon installation, pas de registre ou d'autres deps que je ne peux pas gérer. Je pense que la vraie solution est d'obtenir des mises à jour automatiques entre les versions mineures en place et de mettre tout le monde à jour. Je peux utiliser Inno Setup pour le client qui refuse de mettre à jour pour générer une installation et une archive à construire pour une utilisation ultérieure. –

1

Si vous recherchez simplement une application, la création d'un zip auto-extractible avec 7zip peut être une option. Si vous cherchez une librairie pour écrire votre propre application, vous pouvez regarder dans le zip ionique et utiliser la variable d'environnement pour le dossier des fichiers programme pour trouver ce dossier (mais alors vous zippez un dossier, que diriez-vous d'autres dossiers dépendants et les entrées de registre?). Ou si vous êtes prêt à reproduire des systèmes entiers, vous pouvez tout aussi bien le fantôme/wim.

+0

Aucun autre fichier, juste un dossier sous Program Files. L'exigence est que l'utilisateur final doive pouvoir le faire sans notre aide facilement - j'ai une tonne d'options de CSCript le compressant à 7-zip - mais le résultat final doit être aussi proche que possible d'un clic pour l'utilisateur final. –

+0

bien si le dossier d'installation est garanti pour être le même à tout moment, vous pouvez faire une application très simple en utilisant C# & la bibliothèque zip ionique en un éclair. comme pour l'approche en 1 clic ... raccourci? autorun? – mtijn

+0

J'espérais que quelque chose a existé pour faire cela déjà peut-être que la configuration d'inno peut être étendue pour faire ceci ou quelque util de ligne de commande que je peux écrire autour. On dirait que l'écriture de code est le meilleur moyen, cependant .... –

1

Je recommanderais winrar et une archive auto-extractible. winrar est toujours l'un des meilleurs programmes d'archives et de compresseurs disponibles. Ce n'est pas tres cher. Vous obtenez une mise à jour de durée de vie et une licence de support. Les archives auto-extractibles ont beaucoup d'options comme le pré-traitement différent et les compresseurs différents. Il peut diviser l'archive en différentes tailles. Il a un code de correction d'erreur et il peut être utilisé avec la ligne de commande pour les scripts. C'est une solution parfaite en 1 clic.

Questions connexes