Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Incorporare un file dll nell'applicazione
Forum - C# / VB.NET - Incorporare un file dll nell'applicazione

Avatar
cristian3095 (Normal User)
Pro


Messaggi: 66
Iscritto: 24/09/2010

Segnala al moderatore
Postato alle 15:13
Venerdì, 04/02/2011
Salve a tutti.....
ho creato un programma al quale per funzionare servono nella cartella di avvio due file .dll "AxInterop.WMPLib.dll" e "Interop.WMPLib.dll"
volevo sapere se è possibile incorporarli con il programma cosi che ho solo un file...cioè L'esegiubile e non devo trascinarmi dietro roba varia... ;)

Ultima modifica effettuata da cristian3095 il 04/02/2011 alle 20:56
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:06
Sabato, 05/02/2011
Non si può fare quello che chiedi, di norma. Puoi al massimo includere quei file nelle risorse dell'eseguibile come fossero banali file binari, poi estrarli all'avvio e copiarli nella cartella adeguata. E' una specie di workaround poco elegante...


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
cristian3095 (Normal User)
Pro


Messaggi: 66
Iscritto: 24/09/2010

Segnala al moderatore
Postato alle 17:51
Sabato, 05/02/2011
D: pensavo si potesse fare...vabbe vorra dire che dovrò portarmi quei fastidiosi file insieme all'eseguibile...
Grazie Comunque :k:

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 17:02
Lunedì, 06/02/2012
Ciao Ragazzi,

volevo aprire una nuova discussione ma, crecando, ho visto che il mio problema e' simile a quello discusso qui', quindi ho pensato di scrivere qui'.
Vengo al dunque,
devo includere nel mio programma (in VB.NET 2008) delle DLL, e potrei tranquillamente farlo (come mi e' gia' capitato in passato) come dice Totem, includendole nelle risorse dell'eseguibile...

il mio problema e' che vorrei che l'inclusione delle DLL fosse fatta a run time, ossia che il programma, all'avvio, legga in un DB opportunamente costruito quali DLL, e le relative classi, deve includere (e magari in quale cartella cercarle, ma non e' indispensabile, va bene anche se sono tutte in un'unica cartella);
in pratica il mio intento e' quello di creare un programma base e, in seguito, sviluppare dei plug-in sotto forma di DLL, da poter installare senza dover ricompilare il programma base.

Ciao.

Ultima modifica effettuata da gigisoft il 06/02/2012 alle 17:07


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
und3r6r0und_ (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 19:44
Lunedì, 06/02/2012
dunque... non so se ho ben capito... comunque credo che qualcosa puoi fare, ma di certo non tutto in un programma...
Prima di tutto crea un nome univoco per la/le dll del plugin, in modo che quando scarica quelle nuove vanno a sostituire le vecchie, poi crei una nuova cartella in un percorso accessibile in cui ficcherai tutte le dll (magari in: C:\Users\Public) e vai a "leggere" le dll sempre in quella cartella

spero di essere stato minimamente d'aiuto
und3r6r0und_

p.s:@cristian3095:

Testo quotato

pensavo si potesse fare...vabbe vorra dire che dovrò portarmi quei fastidiosi file insieme all'eseguibile...



La copia byte per byte da risorse è possibile quindi non è detto che non si può fare, solo che ti devi studiare un po' di documentazione a riguardo =)

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 10:22
Martedì, 07/02/2012
Testo quotato

Postato originariamente da und3r6r0und_:

Prima di tutto crea un nome univoco per la/le dll del plugin, in modo che quando scarica quelle nuove vanno a sostituire le vecchie, poi crei una nuova cartella in un percorso accessibile in cui ficcherai tutte le dll (magari in: C:\Users\Public) e vai a "leggere" le dll sempre in quella cartella

spero di essere stato minimamente d'aiuto




Uhm... forse non sono stato abbastanza chiaro...
io so gia' come importare le DLL, ma per farlo, devo materialmente includerla nelle risorse del progetto, e poi inserire chiaramente nel codice l'istruzione:

Codice sorgente - presumibilmente C# / VB.NET

  1. Import MiaDLL.MiaClasse



pero' all'atto della progettazione devo gia' sapere  che esiste una DLL MiaDLL in cui e' definita una classe MiaClasse

quello che vorrei fare io e' permettere al programma di includere le DLL (e le relative classi) senza sapere, all'atto della progettazione, quante e quali siano, semplicemente facendogli leggere i nomi delle DLL e delle classi in un DB.
Qualcuno sa se e' possibile?

Ciao.

Ultima modifica effettuata da gigisoft il 07/02/2012 alle 10:23


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:25
Martedì, 07/02/2012
Sì, è possibile. Usa Assembly.Load.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote