>Creo un progetto di installazione per avere un unico file che
>mi installa automaticamente la mia applicazione (Setup.exe).
che tipo di setup stai facendo? da visual studio 2012 non sono più supportati da ms e ci si deve spostare su soluzioni a pagamento o limitate come installshield limited edition o la sua versione a pagamento, oppure progetti open-source come wix (https://wix.codeplex.com/).
>Il problema è che vorrei includere all'interno di questo file
>tutte le dipendenze che serviranno per eseguire l'applicazione.
>Ad esempio se utilizzo un database (.sdf) devo poterlo usare
>installando il mio setup, senza dover prima scaricare ed installare
>SQL Server Compact, ma che installa automaticamente tutte librerie
>necessarie per il funzionamento. E' possibile distribuire un
>pacchetto di installazione di questo tipo su qualsiasi PC che
>andrà ad utilizzare la mia applicazione?
si è possibile, anche perchè sql server compact, non ha bisogno di nessuna installazione, sarà sufficiente fare in modo che le librerie di sql server compact siano inserite nel setup, ed eventualmente anche il tuo database, se è creato manualmente senza entity framework.
Se installi sql server compact da nuget, noterai che lui aggiunge nel file di progetto visual studio un post build event per copiare le librerie native dentro alla folder bin:
dovrai fare in modo che il tuo pacchetto d'installazione oltre alla libreria System.Data.SqlServerCe.dll che dovrebbe già portarsi dietro da sola, si porti dietro anche le librerie native, se compili in Any-CPU, per entrambe le piattaforme, x86 e amd64.
Ciao,
Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic