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
Ação recomendada
Evite dependências no local do arquivo de assemblies em publicações como arquivo único.
APIs afetadas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de