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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top