Ho 4 DLL. Ma voglio avere 1 sola dll che conterrà il codice di tutte e 4 queste dll. Ho provato ad aggiungere un progetto e a incollare tutto il mio codice esistente in un progetto, ma non ho potuto.Come combinare 2 o più gruppi C# in 1 libreria?
risposta
Date un'occhiata in ILMerge
ILMerge è un'utility per la fusione più assembly .NET in un assembly .NET singolo .
come usare vero? – Javidan
@Javidan Perché non vuoi semplicemente incorporare le tue DLL come risorse in una dll? Non sarà necessario toccare gli assembly, poiché potrebbero essere firmati e richiedere di abbandonare l'assembly risultante dopo l'unione a livello IL. –
Non so cosa fare. Ho installato ilmerge, ma non posso usarlo. E non so quale sia il metodo comodo e sicuro da combinare. – Javidan
È possibile utilizzare ILMerge utilità
Oppure si può embed the dlls you want to merge as resources
Ecco il codice di esempio:
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => {
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
};
Link in un post. –
Ho sempre avuto un sacco di problemi nel tentativo di caricare DLL incorporate ... è passato un po 'di tempo, ma IIRC il problema che stavo facendo era, anche con 'Load (byte [])' l'assembly è stato tentato di essere caricato dal disco. –
@pst Non c'è alcun problema con il caricamento degli assiemi, poiché è possibile caricarlo nel proprio dominio dell'applicazione e controllare manualmente l'accesso e il controllo delle versioni su di esso. E sì, gli assembly caricati nel dominio dell'applicazione, non possono essere ricaricati dal disco o riscritti da un altro assembly, essendo già caricati in memoria. È di design. –
V'è uno strumento da MS: ILMerge
- 1. Come combinare/unire 2 immagini in 1
- 2. Combinare più attributi in C#
- 3. Libreria immagini Python: come combinare 4 immagini in una griglia 2 x 2?
- 4. Come combinare più Observable insieme in Angular 2
- 5. PostgreSQL: come combinare più righe?
- 6. C# Regexp: come estrarre $ 1, $ 2 variabili dalla corrispondenza
- 7. In Javascript, perché [1, 2] == [1, 2] o ({a: 1}) == ({a: 1}) falso?
- 8. Come combinare 2 iteratori in Scala?
- 9. Come combinare 2 colonne bit
- 10. C++: & a [2] - & a [1] ==?
- 11. Come combinare 2 liste usando LINQ?
- 12. Come combinare 3 o più livelli di completamento?
- 13. combinare più dizionari in un unico dizionario
- 14. Come eseguire il compilatore C#, C++ o Java per calcolare 1 + 2 + 3 + ... + 1000?
- 15. come combinare 2 liste in modo univoco
- 16. variabile 1 = ({istruzione 1; istruzione 2;}) in C
- 17. Come combinare più jar in uno?
- 18. Ansible: host in più gruppi
- 19. Xcode 6 non riconosce più i modelli \ 1, \ 2, \ #?
- 20. 2 Seleziona o 1 Accedi alla query?
- 21. Come combinare più stash in git
- 22. Combinare più espressioni regolari in un automa
- 23. Posso "combinare" 2 regex con una logica o?
- 24. libreria steganografia in C o Obj-C
- 25. Come combinare stringhe C++ e stringhe Arduino?
- 26. Come combinare le colonne da 2 tabelle in 1 senza utilizzare ENTRA
- 27. Combinare due $ o dichiarazioni
- 28. C++ Macro loop preprocessore __VA_ARGS__ 1 vs 2+ argomenti
- 29. Parse stringa in tipo numerico nullable (1 o 2 liner)
- 30. Come combinare più query bool in elasticsearch
aggiungerli come un risorse, utilizzare Solution Explorer, aprire le proprietà del progetto e aggiungere assiemi requred come risorse binarie –
Stavo creando una libreria di classi (finestre di dialogo comuni). Ma ho trovato alcune di esse, ma anche quelle sono in un progetto di libreria di classe. Le ho aggiunte come progetto esistente al mio PROGETTO (libreria di classi). E quando costruisco e voglio li uso devo aggiungere ognuno ai riferimenti – Javidan
Aggiungere referenti a queste DLL da proiettare, ma nella sezione Refenced assembly del progetto, puntarle sopra e scegliere in Property Editor per gli assembly referenziati "Copy Local: False, Embed Types: False", quindi caricate semplicemente em, come al solito, dalla risorsa incorporata nella sezione Applicazione appena prima della chiamata al metodo Application.Run(), dove questi assembly fanno riferimento all'assembly principale. In ogni caso, è possibile fare riferimento agli assembly nel progetto in fase di progettazione e non copiarli tutti in cartella di output dell'assieme, invece, memorizza come risorsa in un carico di un assembly quando questo assembly di archiviazione fa riferimento a –