If you get this error message on Windows Vista don’t panic. This post documents how I fixed it with one setup package that I was dealing with, but it might work with yours as well (this is a general problem with some installers).
Yesterday I was trying to install the PowerTools for Visual Studio Team System 2008 Database Edition (what a mouthful). This is a set of tools that extend the Database Edition of Visual Studio, and I was specifically interested in the MSBuild extensions for doing schema comparisons.
Unfortunately, when I attempted to install the package on my Windows Vista 64-bit machine I got the following error:
“The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2738.”
Bummer! My heart sank because I really needed those components and I was worried that I might be seeing some weird 64-bit Vista issue with the way that the setup package had been built – but as I found out, this also effects 32-bit installations as well.
To diagnose the problem I ran the setup package again, but this time I used the MSIEXEC command-line interface to tell it to provide some verbose logging details:
MSIEXEC /i VSTSDB2008PT.MSI /lv LOG.TXT
This executes the setup package as normal, but it takes all the output generated by Windows Installer for diagnostic purposes and stuffs it into a file called LOG.TXT. These files can sometimes be quite large but I found this error (in red) buried away towards the end of the file.
Action start 22:19:04: INSTALL.
MSI (s) (D0:14) [22:19:04:442]: Running ExecuteSequence
MSI (s) (D0:14) [22:19:04:442]: Doing action: DevEnvProcessCheck
MSI (s) (D0:14) [22:19:04:442]: Note: 1: 2205 2: 3: ActionText
Action start 22:19:04: DevEnvProcessCheck.
MSI (s) (D0:DC) [22:19:04:445]: Generating random cookie.
MSI (s) (D0:DC) [22:19:04:452]: Created Custom Action Server with PID 13584 (0x3510).
MSI (s) (D0:D4) [22:19:06:320]: Running as a service.
MSI (s) (D0:D4) [22:19:06:322]: Hello, I’m your 32bit Impersonated custom action server.
MSI (s) (D0:60) [22:19:06:324]: Note: 1: 2205 2: 3: Error
MSI (s) (D0:60) [22:19:06:324]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 2738
DEBUG: Error 2738: Could not access VBScript runtime for custom action
MSI (s) (D0:60) [22:19:07:725]: Note: 1: 2205 2: 3: Error
MSI (s) (D0:60) [22:19:07:725]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709
MSI (s) (D0:60) [22:19:07:725]: Product: Visual Studio Team System 2008 Database Edition – Power Tools — The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2738. The arguments are: , ,
It looked like some kind of security issue to me, but I decided to search of the text via Google where I came across this link on the MSDN forums. The advice they give is that VBScript isn’t registered by default under Vista. The solution is to perform the following operation in ‘C:\WINDOWS\system32’ at the command-prompt:
Once that is done you should get a dialog saying that the DLL was registered successfully. If you are using Windows Vista 64-bit you aren’t done yet. You then need to change into the ‘C:\WINDOWS\SysWOW64’ and issue the same command from above again. This solved the installation problem for me and it went through normally.
I’m post this up here because I think if someone else experiences the same problem then finding this on Google might save some time.
Note: I am not sure if VBScript is unregistered for a reason – perhaps security, so if that is the case you might like to unregister VBScript again afterwards.