Archive: reinstaller


reinstaller
hello

i've succesfully created a great installer for a great gpl tvonpc software : K!TV (www.kastortv.org)


this installer has an advanced function : an uninstaller which can completely reinstall the software



for that, i had to use the same "file" commands in the uninstall section as in the install section



BUT the command "file" has a bug...

when I'm using for example :
"file k!tv.exe", in the installer section,

I have to write in the uninstaller section :
"file k!tv.exe"
(because the uninstaller can reinstall...)

as a consequence, the bug makes that "k!tv.exe" is copyied two times in my setup.exe...

all my files are copyed two times un my setup.exe !!

---> my setup.exe is 2 times bigger than it should be...



I should create a function "copy files for install and reinstall", and then my files would be copyied only once,
BUT
the functions can't be the same for the uninstaller and for the installer........



have You any idea how to avoid this problem ???


Use the installer not the uninstaller to reinstall.

-Stu


thanks for your answer, but is this a solution ????


i'm telling you that i don't find any chocolate ice cream and you're answering me that i juste have to buy a vanilla ice cream...

this is nonsense

my installer can reinstall too... (like the nsis installer)

but what happens if i have deleted my installer, and i want to reinstall my software ?






ps : what does "-stu" mean ?


are you sure, that you are using the uninstall-section properly? have a look at the examples as comparison. if you still insist using the same .exe to install/uninstall, have a look at this.


It is not nonsense. Think of it logically. If you want the installer and uninstaller to install, then both exe's need the files stored in them to do the install!

The link Yathosho pointed to is probably your best solution, as NSIS does not compress the same files only once if you specify them twice (it will always compress them twice).

And Stu is my name (Stuart)

-Stu


ok hello stuart

and thank you both (stuart and yathosho) to answer my questions ;) this is nice of you ;)



well...

what you said me to do, is to make a "reninstaller - uninstaller" in the installer

that's what I did...

(http://www.kastortv.org if you want to try the exe file :
- install it once it's ok
- if you try to reinstall it, you have the choice to uninstall and/or reinstall ;) )

thank you for your links, but that's already what i did :D


(and it's nice)


but if you think logically...

the uninstaller should be able to repair (and to reinstall) the installation...

stuart says : "If you want the installer and uninstaller to install, then both exe's need the files stored in them to do the install"


in fact, you don't need to store the files twice, if you create the uninstaller during the installation, and not during compiling the setup.exe

and you the developpers can change it, can't you ? :D



see you ;)


arf :(


Yes you do have to store the files twice, in both the installer and uninstaller like I said. But no you can't tell NSIS to compress the files once and then copy them into the uninstaller because that would require a large overhead to move the compressed file data from the installer exe into the uninstaller exe.

The only thing that I can think of is that your main installer has a command-line switch that will make it do the reinstall (so your uninstaller will Exec it and voila you get a reinstallation!)
Without the switch the installer will just run as normal.

However, you still have a problem if the user deletes the installer so :(

-Stu


yee :(

and as i said to you, that'"s already what i have done... a reinstaller in the installer

well, ok...

thank you afrow stuart and yathosho ;)

see ya ;)


If you use File with the same file twice, the datablock optimizer will make sure the file is not included twice. However, the installer and the uninstaller do not share the same datablock, so this case can't be optimized.


i know how to do this
rather than useing the file command just resrve the files then just call on them this should work i hope

im lookin gnow to see if it does


no unfotunatly it doesent


Create multi-file distribution (normally NSIS creates single exe package). Use CopyFile instead of File. A lot of forum posts. May be 2 files: Installer/Uninstaller and compressed files archive. This is not very good for Inet downloads, but "WinZipSE for software distribution" on the first step might work fine. And I saw NSIS selfextractor forum thread somewhere :)


Another variant - don't use Uninstall section at all. Finally you need to copy a whole package to $INSTDIR and create link to this file called Uninstall or Setup. On .inInit you need to decide where you are. For example, if you see your package already installed on the comp, offer to user Uninstall/Repair. Otherwise make a simple Install. But you need to implement Uninstall functionality somewhere in Install section.


Hello Hello :)
I've found the solution :D
to a very interesting problem (takhir wasn't far... and its solution is perhaps good... mine works, I tested it ;) )


The question was :
how to make an uninstaller which can reinstall everything if you ask him to do it, without double-ing the size of the final setup.exe




1) don't copy any file during the installation...
2) just copy the uninstaller
3) once it is installed, do an execwait which launches the uninstaller, and "say" to it that you are installing
4) make your uninstaller behave like an installer, copying all the files...
5) when you launch the uninstall, the uninstaller can install the files too if you ask him to do it


only one command "file" per file installed
so no size double-ing ;)



see ya ;)


What about not creating a standard uninstaller, but instead include the makensis.exe and anything else needed and a script to make an (un|re)installer.

At the end of your install (with all of your files deployed on the target hard drive) you use those same files to create your (un|re)installer using makensis.exe, with your script as a guide.

Does that make sense?


this surely make sense :D

like i said 10:04:2004 :
"in fact, you don't need to store the files twice, if you create the uninstaller during the installation, and not during compiling the setup.exe"

which is the most easy to do ?
Well in fact I'm hardly working on my technic to launch uninstaller during installation...
therefore I won't try your solution, but thx :D


hello hello

my installer-uninstaller-reinstaller is complete youpeee




well, this works fine :)

I wanted to thx every forumer of the nsis forum... this foruml is great, people are patient, and you all really, really helped me with talent


What I wanted to do is done... doing an installer and an uninstaller which can reinstall parts or every components of my software, without double-ing the size of the setup.exe

isn't it great ? :D

if some one wants my script, mail me... eronpatapon@ifrance.com

see ya ;)


WoW
Wow1 Thank You, what a gr8 thread.

Deepesh Agarwal,
http://www.freeware-alternative.uni.cc


hello hello

I'm releasing the code of my script

click here


the full script (not really cleared, but fully working, no bug inside, perhaps one or two ahaha who knows)


It isn't as hard to understand as it seems...

I give too the installer (i've removed all "file" commands)





see ya

and ask your questions in this topic