Potresti spiegare cos'è un assembly in C # o .NET?
- Dove inizia e dove finisce?
- Quali informazioni importanti dovrei sapere sugli assembly?
Potresti spiegare cos'è un assembly in C # o .NET?
Risposte:
Un assembly è l'output compilato del codice, in genere una DLL, ma anche l'EXE è un assembly. È la più piccola unità di distribuzione per qualsiasi progetto .NET.
L'assembly contiene in genere codice .NET in MSIL (linguaggio Microsoft Intermediate) che verrà compilato in codice nativo ("JITted" - compilato dal compilatore Just-In-Time) la prima volta che viene eseguito su una determinata macchina. Il codice compilato verrà anche archiviato nell'assembly e riutilizzato nelle chiamate successive.
L'assembly può anche contenere risorse come icone, bitmap, tabelle di stringhe e così via. Inoltre, l'assembly contiene anche metadati nel manifesto dell'assembly: informazioni come numero di versione, nome sicuro, impostazioni cultura, assembly di riferimento e così via.
Nel 99% dei casi, un assembly equivale a un file fisico su disco - il caso di un assembly multi-file (un assembly, distribuito su più di un singolo file) sembra essere un caso piuttosto strano che ho mai incontrato finora nei miei 5+ anni di sviluppo .NET.
In un assembly a più file ci sarebbe ancora un solo manifesto dell'assembly in una DLL o un EXE e il codice MSIL in più file netmodule.
Nel framework Microsoft .NET, un assembly è una libreria di codice parzialmente compilata da utilizzare nella distribuzione, nel controllo delle versioni e nella sicurezza.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
Un assembly è un file che viene generato automaticamente dal compilatore dopo la corretta compilazione di ogni applicazione .NET. Può essere una libreria di collegamento dinamico o un file eseguibile. Viene generato una sola volta per un'applicazione e ad ogni successiva compilazione l'assembly viene aggiornato.
Ecco un'altra spiegazione della composizione degli assembly .NET, una mini citazione:
Il framework .NET è costituito dai concetti di moduli, assembly, che memorizzano sia metadati che informazioni manifest. Un assembly può contenere più moduli. Visual C # crea sempre e solo un modulo che viene trasformato in un assembly dal compilatore C # (csc.exe), ma un assembly può collegare insieme molti moduli .NET tramite lo strumento da riga di comando assembly linker (al.exe). Ad esempio, ciascuno dei file .cs del codice sorgente potrebbe essere compilato in un modulo e collegato insieme per formare un assembly: un assembly è solo una raccolta di moduli e risorse. Uno di questi moduli, tuttavia; deve contenere informazioni sui metadati manifest (vedere di seguito) affinché l'assembly possa essere compreso dal CLR.
....
Dopo aver creato un nuovo .exe o .dll all'interno di VS.NET, vedrai il tuo file apparire nella tua cartella bin. Aprirlo nel blocco note darà un senso senza senso, o anche all'interno di un editor esadecimale senza conoscere la struttura del file, è necessario uno strumento come ildasm.exe o CFF explorer per ricavarne un significato. La struttura dell'assieme è la seguente:Intestazione PE Intestazione
CLR
Metadati
CLR
Codice IL CLR
Dati nativi
La risposta è in ordine per la comprensione immediata.
In parole povere, è il progetto compilato che coinvolge le tue classi e file aggiuntivi, se ci sono. Ovvero, ogni progetto in una soluzione è un assembly .
O più tecnicamente,
Un assembly è dove un tipo è memorizzato nel flesystem. Gli assembly sono un meccanismo per la distribuzione del codice. Ad esempio, l'
System.Data.dll
assembly contiene tipi per la gestione dei dati. Per usare i tipi in altri assembly, è necessario fare riferimento a essi. - Fonte
Come lo sappiamo? Se dai un'occhiata alle proprietà di un progetto sotto la soluzione puoi vedere le seguenti immagini.
Quando si compila il progetto, risulta essere DLL o EXE .
Quando un codice sorgente viene compilato dal compilatore del linguaggio, genera un Managed Assembly e MSIL (MisroSoft Intermediate Language). Quell'assembly contiene file .dll o .exe . Un Assebmly può essere di due tipi Private Assembly e Shared Assembly , l'Assembly condiviso viene archiviato in GAC (Global Assembly Cache) in modo che qualsiasi applicazione possa fare riferimento ad esso mentre l'assembly privato è archiviato nella cartella dell'applicazione che può essere utilizzata da una sola Applicazione.
Un assembly è una DLL o un EXE che verrà creato quando lo pubblichi o compili l'applicazione.
Un assembly è una raccolta di unità logiche. Le unità logiche si riferiscono ai tipi e alle risorse necessari per creare un'applicazione e distribuirle utilizzando il framework .Net. Fondamentalmente, Assembly è una raccolta di file exe e DLL. È portatile ed eseguibile.
Dopo aver scritto il codice sorgente del tuo programma (progetto), viene creato un file che può essere DLL o EXE dipende dal tuo progetto. Fa solo una volta per un singolo progetto. Ha due tipi 1: - singolo 2: - assemblaggio singolo condiviso o multiprogramma usato solo in un singolo programma mentre condiviso può essere usato per multiprogramma