one is that when the visual studio try create your project, him could be looking for the installation register of the sql server expression, and not found the register and show you the error.... you can map this register using Performance Monitor and add
this register to fool the visual studio.
The other one is that you trying to create one service database. One thing that works with mdf file accessed only through servers... so this moment does no interest to visual studio that your compute has the sql server engine installed on.. for him just
matter that the machine have the sql server expression, to him load all objects needs to create the service-basead database.