ARE YOU KIDDING ME!!??
This took me half a day to fix! So I’m posting it in the hopes that at least one person will find this (and not the countless other useless posts) and be saved from an ever so stupid little glitch that needs a little bit better error message!
I’ll tell you the fix, right up front.
The majority of the fix was found here http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/12f89689-c9eb-41cf-a598-a01399fc75a9.
Unfortunately it wasn’t quite enough. But yes, the SQL Server 2012 Feature Pack and Microsoft® System CLR Types for Microsoft® SQL Server® 2012 were needed.
My problem, I had SQL Server 2012 for awhile, that wasn’t working right and wasn’t compatible with some stuff at work, so I uninstalled and installed 2008. I don’t where, but somewhere it’s telling Visual Studio to look for Microsoft.SqlServer.Types dll version 18.104.22.168, which I no longer had. And when I got it from the above link, it still didn’t want it, it wanted it somewhere else apparently. The poor error messages didn’t allow me to even know that was the problem (but we’ll let that go now).
I had to uninstall every little vestige of Server 2012, and then install the CLR Types above… I’m not too sure at what point things were fixed. However, I find it incredibly strange and distressing that the missing/misplaced/wrong version dll for Server 2012 was preventing Visual Studio from getting schema information for Server 2008 AND for local .sdf SQL Server compact edition files!? AND every other database I connected.
All the databases connected fine, and the tables and their fields could all be seen (their schema’s could even be compared, so I’m pretty sure something, somewhere WAS able to retrieve schema information). It was only when trying to create the data set xsd file that it couldn’t seem to read the schema, and then when dragging from the server explorer to the designer. In the latter case it would give the informationless error message “mouse drag operation failed…” – come on, at least tell me a missing file or dependency or something.