I've been struggling for some time now to be able to use the built-in functions in Visual Studio 2008 to handle *.mdf
database files with SQL Server 2008 Express. I'm running on an x64-based system, and I've read that there is a known problem with this setup, but the hotfix has not solved my problems.
Basically, what happens is that when I try to add a new *.mdf
file to the App_Data
folder of a project, I get an error message saying:
Connections to SQL Server files (*.mdf) require SQL Server Express 2005 to function properly. Please verify the installation of the component or download from the URL: http://go.microsoft.com/fwlink/?LinkId=49251
My (unsuccessful) steps to solve this:
- Uninstall all possible associated programs to Visual Studio, SQL Server or .NET Framework (which left .NET 2.0 Compact Framework and .NET 3.5 Compact Framework, and nothing else .NET related, installed).
- Reboot.
- Install .NET 3.5 SP1, SQL Server 2008 Express and SQL Server Management Studio 2008 Express via the Web Platform Installer 2.0 (Beta).
- Reboot.
- Install Visual Studio 2008 Professional from disc.
- Reboot.
- Install Visual Studio 2008 Service Pack 1.
- Reboot.
- Install hotfix.
- Reboot.
- Start VS, create new Web site and try to add database. Still get the error message...
When I look in the Help/About
dialog, the hotfix shows up among applied updates. I have also checked and double-checked that the SQL Server instance name is correctly set in Visual Studio (I copy-pasted the instance name from the login screen in SSMS).
Why does the hotfix not solve my problems? Am I doing things in the wrong order, or do I have the wrong software versions somewhere?
According to the KB article, the problem is that Visual Studio doesn't correctly detect "some registry keys" - but nothing is said about which keys. Does anyone know how to fix this manually?
Oh, and yes - I've seen this post. I know I could just "downgrade" to the x86 version of SQL Server, but I really want to make this work with the x64 version (if nothing else, just because it's supposed to work...), so that solution doesn't really solve my problems. Please don't close this as a duplicate.