Skip to content
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

Win64: installer is better to check for MS VC rutime presence [CORE3641] #3992

Open
firebird-automations opened this issue Oct 21, 2011 · 2 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Arioch (arioch)

Updating my Win7 x64 box i deinstalled FB 2.5.0 and started installing 2.5.1 x64

The installer unpacked files and then thrown bunch of "access denied" files.
FB files were unpacked yet not registered.

Manual run for inst*** tools also resulted in Access denied error.
I traced them and cmd.exe ni Process Monitor but could not find single operation with statuses other than SUCCESS or FILE NOT FOUND. I was confused.

Step by step i came to good idea that tools miss msvcr80.dll and msvcp80.dll
Maybe they never been on my box or some previous deinstaller wiped them out, dunno.

Then the quest was to find it. Okay, it is MC VS 2005, but i do not trust to no-one sites like dll-find, i wanted them from Microsoft Download.
After a while it came out that MC VC 2005 runtimes do disappear from Microsoft Download search results, if user language is Russian.

Then at last i found http://www.microsoft.com/download/en/details.aspx?id=18471 and been able to finally register and run FB.

----

I think that installer(both Win32 and Win64):
1) ...should know whether it has or does not have MS VC runtmes within the package. Currently it is VC 2005, but FB3 was told to switch to VC2010. May one day the server exe and inst*** tools dependent on different MS VC versions - then installer is to know about each version distinctly.
2) if it does not carry the runtimes, then it should check if they are already present on the computer
3) if neither installer nor computer have the runtimes, then it should pause (or even abort) installation and ask user to download and install runtimes 1st. User is to be able to copy the URL from installer-given prompt or open the browser to the page from the prompt.
4) if possible, instXXX tools should give better errors when MS VC runtimes are missed - "access denied" is confusing and does not give hint how to fix it.

Even if decision would be made for installers to always have runtimes within, those points still apply since
a) someone might want to make custom, diet installation package. And got into trouble later.
b) some error may cause to release no-runtime packages. Since aon test machines runtimes would probably be already installed far ago - tests would not show problems. but some users would have.
c) the decision can be some day later reviewed and n-runtime policy applied, when this potential problem be forgot.

I also think documentation and www download page are to be updated to give download links and describe symptoms, however those points are not for this component.

@firebird-automations
Copy link
Collaborator Author

Commented by: @reevespaul

The installer already does do a lot of the checking you suggest.

And W7 should come with the correct assemblies for the MS VC runtimes so Firebird 2.5 should just work, even if installed from the zip kit. It has certainly been tested in the past.

The required runtime libraries are a part of the installer. In any case, the installer deploys the MS VC runtimes via msi if the O/S uses assemblies, otherwise it deploys dll's to the system32 dir (but I guess not many people use W2K or Win9n these days.)

The uninstaller does not uninstall the msvc runtimes.

The only thing the installer cannot do is to check if the required assemblies are already installed. This is either due to a limitation in Wix, or a lack of documentation in Wix. This can add some unnecessary seconds to the installation process but is a fairly minor annoyance.

@firebird-automations
Copy link
Collaborator Author

Commented by: Arioch (arioch)

I do not know why those runtimes were missing, but they were. Installer gave misleadign error messages "access denied". That's how it was.
WiX can create EXE not only MSIs? din't knew. Though it was NSIS or Inno.

ZIP-kits really do have DLLs (but not MSIs) inside. I am not sure about EXE-installers.
I cannot alas unpack Firebird-2.5.1.26351_1_x64.exe and look inside and see if DLLs and MSIs present and not wiped out due to some error.

But if it present, then it is neither unpacked into Program Files nor installed as MSI.
If installer cannot check for runtimes installed - then why not to try installing them for safety? Let MSIs themselves determine if there is need for installation.

The situation was:
1. Win7 x64 box having no system-wide msvc 8.0 runtimes at moment of FB installation. At least not 64-bit ones required by instXXX.
2. Installer saw no problems on system and proceeded to go.
3. Installer then been unable to engage instXXX tools, throwing "access denied" errors.
4. Installer failed to detect problem with installation and suggest fixes
5. Installer did not unpacked/installed the runtimes, it supposedly had within.
6. After runtimes were manually searched for, downloaded and executed, installation was successful.

Hence - if installer runned the VC RT installers itself (supposing it had them built-in) - installation would be successful since the beginning.

Not speaking of instXXX error messages such confusing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant