Share via


Alterações de comportamento da API relacionada ao assembly para o formato de publicação de arquivo único

Várias APIs relacionadas ao local do arquivo de um assembly têm alterações de comportamento quando são invocadas em um formato de publicação de arquivo único.

Descrição das alterações

Na publicação de arquivo único do .NET 5 e das versões posteriores, os assemblies em pacote são carregados da memória em vez de extraídos para o disco. Para aplicativos publicados em arquivo único, isso significa que determinadas APIs relacionadas ao local retornam valores diferentes no .NET 5 e posteriores do que nas versões anteriores do .NET. As alterações são as seguintes:

API Versões anteriores .NET 5 e posteriores
Assembly.Location Retorna o caminho do arquivo DLL extraído Retorna uma cadeia de caracteres vazia para assemblies em pacote
Assembly.CodeBase Retorna o caminho do arquivo DLL extraído Gera exceção para assemblies em pacote
Assembly.GetFile(String) Retorna null para assemblies em pacote Gera exceção para assemblies em pacote
Environment.GetCommandLineArgs()[0] O valor é o nome da DLL do ponto de entrada O valor é o nome do executável do host
AppContext.BaseDirectory O valor é o diretório de extração temporária O valor é o diretório que contém o executável do host

Versão introduzida

5,0

Evite dependências no local do arquivo de assemblies em publicações como arquivo único.

APIs afetadas