In addition to "Always recreate the database", without being disconnected, you should also check the "Development" tab on the "Database Project Properties" page. Be sure to identify the target connection. When you do not define one, the project will always and only deploy as if the target database does not exist. This behavior is a feature. See the link for more details.
My suggestion is to create a connection using Windows authentication so that each user has access to the extension to which they had to connect.
Also note that you will need to do this for each deployment configuration (e.g. debugging, release, etc.).
, script , !