Gestione dei file DLL, implementazione e facilità d'uso per l'utente finale

3

Ho pensato di recente di essere un utente finale che desidera scaricare uno dei miei progetti e usarlo su una macchina perfettamente normale. Avendo uno sfondo uguale sia in Unix che in Windows, so che la gestione dei pacchetti su Unix rende FAR più facile per il programmatore renderlo più semplice per l'utente finale. Se è richiesto un pacchetto, è semplicemente richiesto e tutte le librerie richieste sono lì.

Tuttavia, è una storia diversa su Windows. Ho un progetto che memorizzo su GitHub che è fondamentalmente un'applicazione C ++ in grado di interfacciarsi con il Telecomando Wii . Non molto. Tuttavia, all'inizio, ho separato parte del mio progetto iniziale in un progetto bibliotecario separato, perché potevo prevedere che sarebbe stato utile farlo. Il risultato finale di tutto questo è che ho il vero progetto applicativo su GitHub, che richiede sia alcuni wxWidgets file DLL che il DLL dal mio progetto di libreria separato, che a sua volta richiede un file DLL boost (threading) e il file DLL wiiuse, nessuno dei quali l'utente normale avrà sul proprio computer, tanto meno il loro PATH. Potrei prendere TUTTI quei file DLL, comprimerli e inserirli nell'applicazione, ma dovrei ricordare di sostituire il mio file DLL della libreria separata ogni volta che lavoro sulla libreria.

In ogni caso, qual è l'approccio comune per affrontare questo su Windows? Esistono strumenti di installazione che possono aiutarmi con il tipo di problemi sopra descritti?

    
posta cemulate 04.08.2011 - 07:01
fonte

2 risposte

3

In realtà non è una storia diversa su Windows. Generalmente crei un programma di installazione per la tua applicazione. L'utente esegue il programma di installazione, l'applicazione viene installata. Questo è tutto.

Esistono due approcci principali da utilizzare su Windows.

Puoi usare Windows Installer , che è il servizio di installazione che gira su Windows e installa i file .msi (tipo di come .rpm o .deb). In questo caso, il file che distribuisci non è un eseguibile di per sé. Questo è in realtà il metodo di installazione "consigliato" su Windows. Esistono un paio di strumenti diversi che è possibile utilizzare per creare pacchetti di installazione per questo. WiX è quello che ti viene in mente, ma ce ne sono altri.

L'altra opzione è creare un programma di installazione autonomo. Questo è il tipico 'setup.exe'. Puoi utilizzare strumenti come l'eccellente InnoSetup per creare questi tipi di programmi di installazione.

Quando si effettua l'installazione, installare i file DLL nella directory dell'applicazione. Sarà il più facile per te. Windows cercherà prima la directory locale durante il caricamento dei file DLL. Ciò impedisce i conflitti che potrebbero verificarsi quando lo stesso file DLL viene installato più volte sulla macchina.

    
risposta data 04.08.2011 - 07:22
fonte
2

La risposta di GrandmasterB è sul punto, vorrei solo aggiungere ...

begin rant

... che se l'utente finale deve sapere qualsiasi cosa su quali moduli, DLL, librerie, ecc. il tuo software utilizza per installarlo correttamente, l'installazione è un errore dell'esperienza utente

end rant

L'utente finale (Windows) vuole scaricare un file , fare doppio clic su di esso e fare in modo che l'installazione proceda al successo con il minor numero possibile di interazioni - tutte le impostazioni ei valori predefiniti dovrebbero "solo lavoro "per la tipica macchina Windows. Ciò potrebbe significare più lavoro per te - molto più lavoro, a seconda di quanto sia complessa l'installazione del software - ma un'esperienza molto migliore e maggiori possibilità di successo per l'utente finale.

    
risposta data 04.08.2011 - 08:13
fonte

Leggi altre domande sui tag