.Net Connector Fails after upgrading Windows 8 to 8.1
Posted by: Eric Friedman
Date: December 25, 2013 04:10PM

I upgraded a Dell XPS 8500 from Windows 8 to 8.1, and the MySQL .Net Connector 6.6.4 stopped working. Any attempt to use its MSI package to Change, Repair or Remove it resulted in installer error 1603 and a rollback. Attempting to install a newer version using mysql-connector-net-6.8.3.msi similarly failed with a rollback.

The existing MySQL version 5.5.29 database, stored in "C:\ProgramData\MySQL\MySQL Server 5.5\data\", survived the 8.1 upgrade just fine, as did the existing 32-bit and 64-bit ODBC connections to it. Only the .Net Connector failed.

The following section of the installation log file reveals the problem:
MSI (s) (90:84) [16:07:40:023]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI1FE.tmp, Entrypoint: UpdateFlagPackagesFileForVS2012
SFXCA: Extracting custom action to temporary directory: C:\WINDOWS\Installer\MSI1FE.tmp-\
SFXCA: Binding to CLR version v4.0.30319
Calling custom action MySql.ConnectorInstaller!MySql.ConnectorInstaller.CustomActions.UpdateFlagPackagesFileForVS2012
Exception thrown by custom action:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'E:\Extensions\extensions.configurationchanged'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
at System.IO.File.WriteAllText(String path, String contents)
at MySql.ConnectorInstaller.CustomActions.UpdateFlagPackagesFileForVS2012(Session session)
--- End of inner exception stack trace ---

This error appears related to an earlier line in the log file:
MSI (s) (90:58) [16:07:35:725]: PROPERTY CHANGE: Adding ROOTDRIVE property. Its value is 'E:\'.

Although this system does have an E:\ drive, it is a backup storage drive added long after MySQL and connector 6.6.4 was installed, and has nothing at all to do with either MySQL or VS2012. Why the installer is setting the ROOTDRIVE property to E:\ is a mystery.

Workaround: Creating directory E:\Extensions allowed the uninstall of mysql-connector-net-6.6.4.msi to complete successfully. I was then able to successfully install the current mysql-connector-net-6.8.3.msi, and the .Net 4.5 application is again able to access the MySQL database.

However, this workaround does not explain why the current Connector 6.6.4 installation failed following the Win8.1 upgrade, nor why the installer thinks that E:\ is the ROOTDRIVE.

Options: ReplyQuote


Subject
Written By
Posted
.Net Connector Fails after upgrading Windows 8 to 8.1
December 25, 2013 04:10PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.