-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NSIS Installer Not Working on Second Invocation #722
Comments
I tried stuffing Or does that just set the verbosity of the NSIS compiler and have nothing to do with runtime? |
Known issue, I tried to fix it, but as I see, it is still not fixed. I am investigating. |
Anything I can do to help, let me know. This is a blocking issue for me. Things that haven't helped:
|
@joshua-smith Is app started on finish in any case or not? |
Solution will be implemented before Monday — as a temp workaround external unarchiver will be used. |
Am I right, that is not reproducible on Windows 10 real machine? |
It tries to start the app when it finishes, but of course the app crashes since so many DLLs and configuration files are missing. I haven't tried it on a real Windows 10 machine. I can do that on Tuesday if it would be helpful. All I have VMs for right now are windows XP, 7, 8, 8.1. |
Please try 6.4.1. |
|
Set version to |
|
Now we have two problems.
|
Since Windows ***, I decided to create extra folder to be sure that old version doesn't block files and new version can be installed correctly even if old version files cannot be deleted.
It is not possible, but since it is windows, everything is possible. Ok.... I give up — I will prepare soon version where external Please note — I am sure that end users are not affected currently because now we use extra folder per version. |
My users regularly run the same installers more than once. I have a user base who often doesn't understand the difference between an installer and a program, for example. So actually, this could impact end users. Having multiple versions of the program hanging around in that program files folder is not a good idea at all. There will either be multiple versions listed in "Add or Remove Programs" or maybe worse, there will be no way to uninstall an old version. I'd strongly recommend you back out of that extra directory. Or at least give me an option to not have that behavior for my installer, because it's going to cause a lot more problems than it solves. |
No. We always uninstall old version before install.
You can always open uninstaller directly using File Explorer. Even if uninstaller entry will be removed from windows registry. Squirrel.Windows also uses this scheme to install. So, is there any other strong objection? No doubt — I understand you, I just want to be sure. |
Some of my users don't know how to use the file explorer :). If you run the uninstall before the new install, that would seem to solve the issue I'm concerned about. So I guess that's not a problem. Are you positive it isn't that the old uninstaller is still running while the installer is unpacking files? Since the uninstaller is a separate process, it would totally explain the behavior we are seeing. |
So, I will not revert this change. To be clear — Window IO is ***, so, using another dir for version is more robust. Auto-update will be implemented soon and Windows can block old files — to avoid it, and to be sure that new version NEVER uses old files, this scheme (folder per version) is implemented.
|
Okay on the not reverting. I see your point totally. I tried an experiment where I pulled the Unintaller out of the Program Files folder and then run the installer. I did it twice and both times the install works. I'll do a few more tries, but it seems to solve the issue. The uninstaller copies itself to a temporary place and then runs that. So maybe ExecAndWait is only waiting for the first half of that process. |
Thanks! I will fix it tomorrow morning CET. Please note — as far I understand, we cannot just use |
This bug has returned in 6.7.4. If I run the new installer twice, the second time I end up with only half the files because the uninstaller is still running while the files are being copied in. I'm almost completely certain this is a regression in 6.7.4 and this was fix in 6.7.2. |
@joshua-smith Cannot believe :( |
This is probably caused by the uninstaller being invoked with the arguments in the wrong order. See related comment on #735 |
Confirmed that this problem is no longer present in 6.7.7. Thank you! |
I am building a oneClick:true NSIS installer with perMachine:true.
If I run the installer on a clean machine, it works perfectly.
If I uninstall then run the installer again, it works perfectly.
But if I run the installer when there is a previous (or even exactly the same) app installed, it only installs some of the files.
First run:
Second Run:
Third run:
I don't know how to turn on installer logging, or if it is on, I don't know where to find the logs. So if you could give me a pointer for that, I might be able to get more data.
Other things which might be relevant:
__scheme__
with my actual scheme):The text was updated successfully, but these errors were encountered: