Assembléias em .NET

Os conjuntos formam as unidades fundamentais de implementação, controlo de versão, reutilização, deteção de ativação e permissões de segurança para . Aplicações baseadas em NET. Um conjunto é uma coleção de tipos e recursos que são construídos para trabalhar em conjunto e formar uma unidade lógica de funcionalidade. Os conjuntos assumem a forma de ficheiros executáveis (.exe) ou de biblioteca de ligações dinâmicas (.dll) e são os blocos de construção de aplicações .NET. Fornecem ao tempo comum de funcionação da linguagem a informação de que necessita para estar atento às implementações do tipo.

Em .NET e .NET Framework, pode construir um conjunto a partir de um ou mais ficheiros de código fonte. Em .NET Framework, os conjuntos podem conter um ou mais módulos. Isto permite que projetos maiores sejam planeados para que vários desenvolvedores possam trabalhar em ficheiros ou módulos de código fonte separados, que são combinados para criar uma única montagem. Para obter mais informações sobre os módulos, consulte Como: Construir um conjunto multifile.

Os conjuntos têm as seguintes propriedades:

  • As assembléias são implementadas como ficheiros.exe ou .dll .

  • Para bibliotecas que .NET Framework, pode partilhar conjuntos entre aplicações colocando-as na cache de montagem global (GAC). Tem de ter nomes fortes antes de os incluir no GAC. Para mais informações, consulte as assembleias com nome forte.

  • As assembléias só são carregadas na memória se forem necessárias. Se não são usados, não estão carregados. Isto significa que as assembleias podem ser uma forma eficiente de gerir os recursos em projetos de maior dimensão.

  • Pode obter informações programáticas sobre um conjunto utilizando reflexão. Para obter mais informações, consulte Reflexão (C#) ou Reflexão (Visual Basic).

  • Pode carregar um conjunto apenas para inspecioná-lo utilizando a MetadataLoadContext classe em .NET e .NET Framework. MetadataLoadContext substitui os Assembly.ReflectionOnlyLoad métodos.

Assembléias no tempo de execução da linguagem comum

As assembleias fornecem ao tempo comum de funcionação da linguagem a informação de que necessita para estar atento às implementações do tipo. Para o tempo de execução, um tipo não existe fora do contexto de uma montagem.

Um conjunto define as seguintes informações:

  • Código que o tempo de execução da linguagem comum executa. Note que cada conjunto pode ter apenas um ponto de entrada: DllMain, WinMainou Main.

  • Limite de segurança. Uma montagem é a unidade em que as permissões são solicitadas e concedidas. Para obter mais informações sobre os limites de segurança nas assembleias, consulte considerações de segurança da Assembléia.

  • Tipo limite. A identidade de cada tipo inclui o nome da assembléia em que reside. Um tipo chamado MyType que é carregado no âmbito de um conjunto não é o mesmo que um tipo chamado MyType que é carregado no âmbito de outro conjunto.

  • Limite de âmbito de referência. O manifesto de montagem tem metadados que são utilizados para resolver tipos e satisfazer pedidos de recursos. O manifesto especifica os tipos e recursos para expor fora da montagem, e enumera outras assembleias de que depende. O código de linguagem intermédia da Microsoft (MSIL) num ficheiro portátil executável (PE) não será executado a menos que tenha um manifesto de montagem associado.

  • Limite da versão. O conjunto é a unidade versão mais pequena no tempo comum de execução da linguagem. Todos os tipos e recursos na mesma montagem são versados como uma unidade. O manifesto de montagem descreve as dependências da versão especificadas para quaisquer conjuntos dependentes. Para obter mais informações sobre a versão, consulte a versão de Montagem.

  • Unidade de implantação. Quando uma aplicação começa, apenas os conjuntos que a aplicação inicialmente chama devem estar presentes. Outras assembleias, como assembleias que contenham recursos de localização ou classes de utilidade, podem ser recuperadas a pedido. Isto permite que as aplicações sejam simples e finas quando descarregadas pela primeira vez. Para obter mais informações sobre a implementação de conjuntos, consulte as aplicações Implementar.

  • Unidade de execução lado a lado. Para obter mais informações sobre a execução de várias versões de um conjunto, consulte As Assembléias e execução lado a lado.

Criar uma montagem

As assembléias podem ser estáticas ou dinâmicas. Os conjuntos estáticos são armazenados em disco em ficheiros portáteis executáveis (PE). Os conjuntos estáticos podem incluir interfaces, classes e recursos como bitmaps, ficheiros JPEG e outros ficheiros de recursos. Também pode criar conjuntos dinâmicos, que são executados diretamente a partir da memória e não são guardados para o disco antes da execução. Pode guardar conjuntos dinâmicos para o disco depois de executados.

Existem várias formas de criar assembleias. Pode utilizar ferramentas de desenvolvimento, como Visual Studio, que podem criar ficheiros.dll ou .exe. Pode utilizar ferramentas no Windows SDK para criar conjuntos com módulos de outros ambientes de desenvolvimento. Também pode utilizar APIs de execução de linguagem comum, como System.Reflection.Emit, por exemplo, para criar conjuntos dinâmicos.

Compilar conjuntos construindo-os em Visual Studio, construindo-os com ferramentas de interface de linha de comando .NET Core ou construindo conjuntos de .NET Framework com um compilador de linha de comando. Para obter mais informações sobre conjuntos de edifícios utilizando .NET CLI, consulte a visão geral .NET CLI.

Nota

Para construir um conjunto em Visual Studio, no menu Construir, selecione Build.

Manifesto de montagem

Cada assembléia tem um ficheiro manifesto de montagem . Semelhante a uma tabela de conteúdos, o manifesto de montagem contém:

  • Identidade do conjunto (o seu nome e versão).

  • Uma tabela de ficheiros que descreve todos os outros ficheiros que compõem a montagem, como outras assembléias que criou, que o seu ficheiro .exe ou .dll baseia-se em ficheiros bitmap ou ficheiros Readme.

  • Uma lista de referência de montagem, que é uma lista de todas as dependências externas, tais como .dlls ou outros ficheiros. As referências de montagem contêm referências a objetos globais e privados. Objetos globais estão disponíveis para todas as outras aplicações. Em .NET Core, os objetos globais são associados a um tempo de execução .NET Core particular. Em .NET Framework, os objetos globais residem na cache de montagem global (GAC). System.IO.dll é um exemplo de uma assembleia no GAC. Os objetos privados devem estar ao nível do diretório ou abaixo do diretório no qual a sua aplicação está instalada.

Como os conjuntos contêm informações sobre conteúdos, versões e dependências, as aplicações que as utilizam não precisam de depender de fontes externas, como o registo de sistemas Windows, para funcionarem corretamente. As assembléias reduzem.dll conflitos e tornam as suas aplicações mais fiáveis e fáceis de implementar. Em muitos casos, pode instalar um . Aplicação baseada na NET simplesmente copiando os seus ficheiros para o computador-alvo. Para mais informações, consulte o manifesto da Assembléia.

Adicione uma referência a um conjunto

Para utilizar um conjunto numa aplicação, deve adicionar-lhe uma referência. Uma vez referenciado um conjunto, todos os tipos, propriedades, métodos e outros membros acessíveis dos seus espaços de nome estão disponíveis para a sua aplicação como se o seu código fizesse parte do seu ficheiro de origem.

Nota

A maioria dos conjuntos da Biblioteca classe .NET são referenciados automaticamente. Se um conjunto de sistema não for referenciado automaticamente, adicione uma referência de uma das seguintes formas:

  • Para .NET e .NET Core, adicione uma referência ao pacote NuGet que contém o conjunto. Utilize o Gestor de Pacotes NuGet em Visual Studio ou adicione um <elemento PackageReference> para a montagem ao projeto .csproj ou .vbproj.
  • Para .NET Framework, adicione uma referência ao conjunto utilizando o diálogo 'Adicionar Referência' em Visual Studio ou utilizando a opção -reference de linha de comando para os compiladores C# ou Visual Basic.

Em C#, pode utilizar duas versões da mesma montagem numa única aplicação. Para mais informações, consulte o pseudónimo de Extern.

Título Descrição
Conteúdo de montagem Elementos que compõem uma montagem.
Manifesto de montagem Os dados no manifesto de montagem e como é armazenado em conjuntos.
Cache de montagem global Como o GAC armazena e utiliza conjuntos.
Assembleias com nome forte Características de assembleias de nome forte.
Considerações de segurança da montagem Como a segurança funciona com as assembleias.
Veragem de montagem Visão geral da política de versão .NET Framework.
Colocação de montagem Onde localizar as assembleias.
Assembléias e execução lado a lado Utilize várias versões do tempo de execução ou de um conjunto simultaneamente.
Emite métodos e conjuntos dinâmicos Como criar conjuntos dinâmicos.
Como o tempo de execução localiza conjuntos Como o .NET Framework resolve referências de montagem no tempo de execução.

Referência

System.Reflection.Assembly

Ver também