Conversation
|
I have also confirmed it works back to 4.11, however if I install 4.10, it will remove the dll but will not uninstall. This is where 4.10 is in the registry: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall{CD703FE5-1F2C-4837-BD3D-DD840D83C3E3}_is1 |
|
I think we could dismiss anything prior to 4.11 this is pre-march 2023 and pred NDI 5. This is because pre-4.11 it was a different AppID. |
|
Suggestion: release this as 6.0.1 to avoid most of the issues / support request when user do not follow completely the uninstall steps. |
| end; | ||
|
|
||
|
|
||
| // Remove old OBS-NDI conflicting plugin - by Trouffman for DistroA https://github.com/DistroAV/DistroAV/ |
| // Remove old OBS-NDI conflicting plugin - by Trouffman for DistroA https://github.com/DistroAV/DistroAV/ | ||
|
|
||
| // CAREFUL : this target the old AppID. | ||
| const UninstallRegisterPath = 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{A9039243-4FE7-45E7-8B11-7DC1ACB67B9D}_is1'; |
There was a problem hiding this comment.
if we know other older obs-ndi guids, why not also add those here?
@BitRate27 said 4.10 is HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall{CD703FE5-1F2C-4837-BD3D-DD840D83C3E3}_is1, but I think the WOW6432 part can be skipped and just the guid used.
| Type: files; Name: "{app}\obs-plugins\64bit\obs-ndi.pdb" | ||
|
|
||
| [Run] | ||
| ; This uninstall the old obs-ndi after installation but before the final dialog when installing DistroAV |
There was a problem hiding this comment.
; This uninstalls the old obs-ndi after installing DistroAV but before the final dialog
There was a problem hiding this comment.
Makes much more sense!
paulpv
left a comment
There was a problem hiding this comment.
I am fine with the code, but there are a few tiny minor typos or grammatical errors.
I'm not qualified to criticize the Pascal code; I haven't coded Pascal since 1991!
(Pascal was my first compiled code language)
The code looks a little odd/foreign to me, but that may just be inherent to Pascal.
|
The code seems fine. I had originally considered doing this... |
|
Last commit should address the 4.10 and also fix some naming weirdness. |
| // Check primary registry location | ||
| if ( RegQueryStringValue(HKLM, UninstallRegisterPath, 'UninstallString', UninstallerPathRegistry) ) then | ||
| // Check primary registry location version 4.11+ | ||
| if ( RegQueryStringValue(HKLM, UninstallRegisteryPath411up, 'UninstallString', UninstallerPathRegistry) ) then |
There was a problem hiding this comment.
Is it possible for there to be some install/update/uninstall bug and someone have both <= 4.10 and >= 4.11 installed?
There was a problem hiding this comment.
Not expected.
The way PASCAL script work is as follow:
- The first match of a If statement with "exit" that statement.
In our example:
- if someone has any post 4.11 installed -> this will be removed.
- if they do not have the 4.11 but >= 4.10 it will remove it.
Anyone before 4.10 is out of support for over a year an half, this is not supported and that user will have to manually deal with it. At this point there is jsu tso much that can be done :D
If a user has both 4.10 and 4.11+ installed at a time (could be if installed in 2 different locations) The install will remove OBS NDI 4.11, skip any other. At launch the user will see the error that obs-ndi is installed : if it run the distroav installer again : this will remove 4.10.
|
While we are touching this file, please change line 1 from: to |

This PR aim to solve challenge with:
Target Usage:
The PR use
Expected behavior:
Some notes (useful for general knowledge and future reference):
Use of InnoSetup [InstallDelete] Section
Official Doc says this is processed as a first step in the installation process.
This is a step to discuss! While this target exclusively obs-ndi files, we should highlight it.
If no uninstaller can be found this will proceed with regular installation
Leverage the [Run] Section to trigger the uninstall of OBS-NDI if the uninstaller path is known after the installation.
Why the need for a Check and not use "Flags: skipifdoesntexist"
Flags: skipifdoesntexist only support absolute Path and will not work with dynamic path.
Tested: