Interiorizzare Classe e Metodi .NET Assembly
-
09-06-2019 - |
Domanda
Ho una serie di più assembly (assemblea è quello di essere utilizzato come API e dipende da altre assemblee).Vorrei unire tutti i gruppi in un'unica assemblea, ma prevenire tutti i gruppi, tranne le API ad essere visibile dall'esterno.
Io poi offuscare questa assemblea con Xenocode.Da quello che ho visto, è impossibile interiorizzare assemblea con Xenocode.
Ho visto ILMerge da Microsoft, ma non era in grado di capire se è possibile fare quello che voglio.http://research.microsoft.com/~mbarnett/ILMerge.aspx
Soluzione 2
So Xenocode possibile unire assembly, ma non sono sicuro se sarà interiorizzare altri non primario assemblee.
Ho trovato il /interiorizzare passare in ILMerge che "interiorizzare" tutti i gruppi ad eccezione di quella primaria.Abbastanza utile!
Altri suggerimenti
Ho usato ILMerge da microsoft a interiorizzare la DLL in un unico assemblato biblioteca.C'è una comoda GUI per l'utilizzo di ILMerge chiamato NuGenUnify.Lo si può trovare qui.
Vi suggerisco di guardare il InternalsVisibleTo
attributo MSDN.
È possibile contrassegnare tutto in tutti i gruppi (tranne le API assemblea) come internal
invece di public
, poi reshow li a poco, l'API di montaggio.
Dopo aver fatto questo, utilizzando ILMerge dovrebbe dare una sola assemblea con solo le classi API visibile.
Ci sono alcuni problemi con ILMerge, ma penso che se si aggiunge ottimizzazioni + unione + offuscamento è probabile che creano un ambiente estremamente complessa situazione di scarso beneficio.
Perché non basta una sola assemblea, e di fare solo le API pubbliche?
Se siete sempre li distribuisce come una singola assemblea non c'è nessun motivo per non solo la compilazione di loro come che.Potrai ottenere il massimo beneficio da ottimizzazioni del compilatore e sarà più veloce a compilare troppo.