Utilizzare ILmerge per le librerie NuGet?

2

Sto creando una libreria C # open source ( link se è necessario). Come è di moda in questi giorni, ho intenzione di diffonderla tramite NuGet.

La mia libreria dipende da un'altra libreria (Castle.Core). Prima dei giorni NuGet, usavo uno strumento come ILMerge per unire la mia libreria e Castle.Core in un unico assembly, in modo che la distribuzione fosse più semplice. Ciò aumenta in modo significativo la dimensione del mio assembly (da 50kb a 450kb), ma è solo una singola DLL, utile per gli utenti.

Ora che c'è NuGet, tuttavia, posso semplicemente aggiungere Castle.Core come dipendenza e NuGet lo risolverà per i miei utenti. Questo ha alcuni vantaggi:

  • È più semplice e meno incline agli errori per me
  • Se i miei utenti utilizzano un'altra libreria che dipende da Castle.Core, risparmiamo spazio su disco
  • In qualche modo sembra più "onesto" - tutto il duro lavoro è svolto da Castle.Core, tutto ciò che ho aggiunto è una bella API.

Ci sono anche alcuni svantaggi:

  • Se Castle.Core viene rimosso in qualche modo da NuGet, la mia libreria smetterà di funzionare
  • Se qualcuno vuole ancora utilizzare la mia libreria senza NuGet, è una seccatura maggiore perché è necessario copiare più DLL attorno
  • Se uno sviluppatore esamina l'elenco dei riferimenti al progetto, vedrà alcuni strani riferimenti "Castle.Core" che non ricorda mai di aver aggiunto. Questo potrebbe confondere.

Che cosa faresti?

    
posta skrebbel 18.06.2013 - 13:48
fonte

1 risposta

2

C'è almeno un vantaggio che non hai menzionato:

  • Se Castle viene aggiornato con una versione di bug fix su NuGet, l'utente otterrà la versione aggiornata.

Se unisci tutti i vantaggi, penso che superino gli svantaggi. Quindi, penso che dovresti semplicemente aggiungere il riferimento al pacchetto Castle al tuo pacchetto e utilizzarlo.

    
risposta data 18.06.2013 - 15:49
fonte

Leggi altre domande sui tag