Você poderia explicar o que é um assembly em C # ou .NET?
- Onde começa e onde termina?
- Que informações importantes devo saber sobre Assembléias?
Você poderia explicar o que é um assembly em C # ou .NET?
Respostas:
Um assembly é a saída compilada de seu código, normalmente uma DLL, mas seu EXE também é um assembly. É a menor unidade de implantação para qualquer projeto .NET.
O assembly normalmente contém código .NET em MSIL (Microsoft Intermediate language) que será compilado para código nativo ("JITted" - compilado pelo compilador Just-In-Time) na primeira vez em que for executado em uma determinada máquina. Esse código compilado também será armazenado no assembly e reutilizado em chamadas subsequentes.
O assembly também pode conter recursos como ícones, bitmaps, tabelas de string e assim por diante. Além disso, o assembly também contém metadados no manifesto do assembly - informações como número de versão, nome forte, cultura, assemblies referenciados e assim por diante.
Em 99% dos seus casos, uma montagem é igual a um arquivo físico no disco - o caso de uma montagem de vários arquivos (uma montagem, distribuída em mais de um único arquivo) parece ser um caso de borda bastante estranho que eu nunca encontrei até agora em meus mais de 5 anos de desenvolvimento .NET.
Em um assembly de vários arquivos, ainda haveria apenas um manifesto do assembly em uma DLL ou EXE e o código MSIL em vários arquivos netmodule.
Na estrutura do Microsoft .NET, um assembly é uma biblioteca de código parcialmente compilada para uso em implantação, controle de versão e segurança.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
Um assembly é um arquivo gerado automaticamente pelo compilador após a compilação bem-sucedida de cada aplicativo .NET. Pode ser uma biblioteca de vínculo dinâmico ou um arquivo executável. Ele é gerado apenas uma vez para um aplicativo e a cada compilação subsequente, o assembly é atualizado.
Aqui está outra explicação sobre a composição dos .NET Assemblies, uma minicitação:
A estrutura .NET consiste nos conceitos de módulos, assemblies, que armazenam metadados e informações de manifesto. Uma montagem pode conter vários módulos. O Visual C # cria apenas um módulo que é transformado em assembly pelo compilador C # (csc.exe), mas um assembly pode vincular muitos módulos .NET por meio da ferramenta de linha de comando do linker de assembly (al.exe). Por exemplo, cada um dos arquivos .cs do código-fonte pode ser compilado em um módulo e vinculado para formar um assembly - um assembly é apenas uma coleção de módulos e recursos. Um desses módulos, no entanto; deve conter informações de metadados de manifesto (veja abaixo) para que o assembly seja entendido pelo CLR.
....
Tendo criado um novo .exe ou .dll dentro do VS.NET, você verá o seu arquivo aparecer dentro da pasta bin. Abri-lo no bloco de notas gerará confusão, ou mesmo dentro de um editor hexadecimal sem saber a estrutura do arquivo, você precisa de uma ferramenta como ildasm.exe ou CFF explorer para extrair significado dele. A estrutura da montagem é a seguinte:PE cabeçalho
CLR cabeçalho
CLR metadados
CLR
código IL
dados Native
A resposta é adequada para uma compreensão imediata.
Simplificando, é o projeto compilado envolvendo suas classes e arquivos adicionais, se houver. Ou seja, cada projeto em uma solução é montagem .
Ou mais tecnicamente,
Um assembly é onde um tipo é armazenado no sistema de arquivos. Assemblies são um mecanismo de implantação de código. Por exemplo, a
System.Data.dll
montagem contém tipos de gerenciamento de dados. Para usar tipos em outros assemblies, eles devem ser referenciados. - Fonte
Como sabemos disso? Se você olhar as propriedades de um projeto na solução, poderá ver as seguintes imagens.
Quando você compila o projeto, ele se transforma em DLL ou EXE .
Quando um código-fonte é compilado pelo compilador de linguagem, ele gera um Managed Assembly e MSIL (MisroSoft Intermediate Language). Esse assembly contém um arquivo .dll ou .exe . Um Assebmly pode ser de dois tipos Private Assembly e Shared Assembly . O Assembly compartilhado é armazenado no GAC (Global Assembly Cache) para que qualquer aplicativo possa se referir a ele enquanto o assembly privado é armazenado na pasta do aplicativo que pode ser usado por apenas um aplicativo.
Um assembly é uma DLL ou EXE que será criado quando você publicá-lo ou compilar seu aplicativo.
Uma montagem é uma coleção de unidades lógicas. As unidades lógicas referem-se aos tipos e recursos que são necessários para construir um aplicativo e implantá-los usando a estrutura .Net. Basicamente, o Assembly é uma coleção de Exe e DLLs. É portátil e executável.
Após escrever o código-fonte do seu programa (projeto), é criado um arquivo que pode ser DLL ou EXE dependendo do seu projeto. Faz apenas uma vez para um único projeto. Tem dois tipos 1: - único 2: - conjunto único compartilhado ou multiprograma usado apenas em um único programa, enquanto compartilhado pode ser usado para multiprograma