I made a simple installer application in Delphi, nothing out of the ordinary. Basically, I include the files in Exe, and then I extract them at the path specified by the user.
However, I came across a problem, and I noticed that this works with ANY Windows executable, no matter if it is an installer or not.
If the Exe name is specified or contains the following words in the file name: "Setup", "Build", "Install" and, possibly, others, then ... whenever the application starts and closes, Windows displays compatibility with the product Helper dialog box stating that the application may not be installed correctly.
This is a problem, since even the files from my installer are really extracted, and in my eyes the installer did its job, Windows complains about it.
The only idea that I have in this regard is that Windows should check the name of the application file when it is executed, in which case it is identified as an installer. Windows should set a flag or something in the System, should my installer update this flag to say that the installation was successful?
Windows does not complain about this when debugging from the IDE, therefore it cannot be connected with the code, it must be the OS - this only happens when the application is launched from Windows, and not in Delphi.
You can try it easily, create an application or rename it as Setup.exe, start it, and then close - wait a few seconds, and the Assistant Compatibility Assistant dialog box appears.
I do not know where to start the investigation, how to stop this dialog box, or where it may be indicated that the Windows Installer was executed correctly.
Appreciate your thoughts and decisions.