Creare il Setup di installazione con tutte le dipendenze...

lunedì 14 aprile 2014 - 18.14
Tag Elenco Tags  C#  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  Windows 7  |  Windows XP

breton79 Profilo | Newbie

Buona sera, ho incontrato un problema con un progetto che ho concluso ultimamente.
Creo un progetto di installazione per avere un unico file che mi installa automaticamente la mia applicazione (Setup.exe). 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?

Grazie anticipatamente

0v3rCl0ck Profilo | Guru

>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:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

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

breton79 Profilo | Newbie

>che tipo di setup stai facendo? da visual studio 2012 non sono
>più supportati da ms
per questo progetto utilizzo VS2008 ed ho creato alla soluzione un nuovo
progetto di "Installazione e distribuzione" ed ho scelto il primo modello e cioè "Progetto di installazione".

>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.
Il mio database è incluso nell'installazione, ma come faccio a dire al sistema di inserire tutte le librerie SQL che mi interessano?
Ho anche bisogno che l'applicazione funzioni sia su sistemi a 32bit che a 64 bit e per questo compilo con il parametro piattaforma Any CPU.

0v3rCl0ck Profilo | Guru

purtroppo non uso più vs2008 da anni, e non ricordo con esattezza come funzionava il progetto installer, ma sicuramente potrai aggiungere altri file nella bin folder, e basterà che tu selezioni tutti i file relativi al sql server compact + le due folder per i binari nativi (x86 e amd64)


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

breton79 Profilo | Newbie

Volevo dirvi che sono riuscito nell'intento.
La soluzione che ho utilizzato è la seguente:
- Proprietà del progetto Installer
- Premere il pulsante Prerequisiti
- La finestra prerequisiti sceglie automaticamente i programmi che servono per far funzionare l'applicazione
- Specificare come scelta "Scarica prerequisiti dallo stesso percorso dell'applicazione

Ricompilando il tutto, nella cartella Debug/Release (dipende dalla configurazione attiva) relativa al progetto Installer, saranno create automaticamente le cartelle contenenti il necessario per eseguire il setup.

Spero che queste informazioni possono essere utili a qualcuno.
Buon lavoro a tutti.

0v3rCl0ck Profilo | Guru

grazie mille per la condivisione, sicuramente potrà servire anche ad altri.



Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5