Sì, la tua configurazione basata su Windows Installer e creata con Visual Studio stesso può distribuire tutto ciò di cui hai bisogno. Leggi questo articolo su MSDN per maggiori dettagli (forse non avrai bisogno di ClickOnce ma contiene molti link).
Immagino che tu abbia bisogno di alcuni chiarimenti sulle tue opzioni (presumo tu voglia usare una soluzione Microsoft perché hai parlato di SQLExpress).
- Microsoft SQL Server:motore di database completo. Costa (molto) e l'implementazione non è facile come vorremmo.
- Microsoft SQL Server Express:edizione gratuita (con alcuni limiti) del fratello maggiore. Stessi problemi di installazione. Perfetto per applicazioni desktop o web di medie dimensioni.
- Microsoft LocalDB:file singolo o multiplo, singolo utente, supporto per stored procedure e avanzate tipi di dati come nelle versioni successive, facile da implementare e (facoltativamente) esecuzione per utente. Perfetto per applicazioni desktop di piccole/medie dimensioni e sviluppo (con alcune precondizioni anche con applicazioni web).
- Microsoft SQL Server Compact 4.0:file singolo, utente singolo, piccolo, in-process, molto facile da implementare. Perfetto per piccole applicazioni per utente singolo o utilizzato come data storage locale (VS2k10 C++ Intellisense, ad esempio, utilizza un DB SQLCE).
- Microsoft JET Engine:il vecchio amato Access. Se vieni da VB6 immagino che tu lo sappia.