Monday 27 January 2020

Assemblyidentity codebase forex


Com base nessa questão. Eu tentei usar ltcodebasegt para localizar um assembly externo. Agora, quando executo o programa, recebo uma mensagem de erro dizendo que o assembly privado estava localizado fora da appbase. Como posso corrigir esse problema? Uma sugestão que vi disse que assina a montagem. Eu fiz isso, mas meu programa não conseguiu encontrar a montagem. Quando eu desmarquei, eu recebo o erro externo do appbase. Como faço para carregar uma montagem que esteja localizada em outro lugar usando ltcodebasegt e não instalando no GAC (Probing também não funcionou e parece que ainda precisa estar presente na pasta do aplicativo) Meu arquivo de configuração: solicitado 18 de dezembro 11 às 17:11 O O problema é que a dll está localizada nesse diretório específico porque muitas outras dependências também estão disponíveis, então eu não posso movê-lo para o meu diretório filho. No entanto, se eu criar um novo projeto nesse diretório e chamar a DLL, ele afirma que não pode carregar outra dependecy (que a DLL original pode carregar). Talvez essa seja a DLL que esse provoca o problema. Ndash XSL 18 de dezembro 11 em 19: 44 Dica da base de dados nos arquivos de configuração A seção Comentários da documentação do MSDN é notavelmente completa e precisa. O elemento da base de código funciona de forma diferente, dependendo do arquivo de configuração em que está inserido. O documento explica todos eles muito bem. Estou realmente impressionado com a documentação J Mas é claro que alguns esclarecimentos são sempre bons. 1. Para o tempo de execução usar a configuração ltcodeBasegt em um arquivo de configuração de máquina ou arquivo de política do editor, o arquivo também deve redirecionar a versão de montagem (para uma versão de montagem diferente, adicionada por mim). O que isso diz é, quando a sugestão ltcodeBasegt está na política do editor ou na configuração da máquina, se não houver um redirecionamento da versão da montagem, ou o redirecionamento da montagem não resultará em uma versão de montagem diferente, a dica do codeBase não será respeitada. Portanto, o exemplo acima não funcionará na configuração da máquina. Você deve adicionar um redirecionamento de versão de montagem. E o redirecionamento de vesion de montagem deve resultar em uma versão de montagem diferente. 2. Os arquivos de configuração de aplicativos podem ter uma configuração de base de código sem redirecionar a versão de montagem. A restrição acima não se aplica a app. config. A sugestão da base de código será homenageada, mesmo que não haja redirecionamento de versão de montagem. 3. Depois de determinar qual versão de montagem usar, o tempo de execução aplica a configuração da base de código do arquivo que determina a versão. Digamos que você tenha app. config, política do editor, machine. config. Se aplicarmos o redirecionamento da versão de montagem no machine. config, iremos tomar a dica do código na máquina. config se houver. Caso contrário, se aplicarmos o redirecionamento da versão da montagem na política do editor, tomaremos a dica da base de dados na política do editor, se houver. Caso contrário, tomaremos a dica da base de código na app. config. 4. Se nenhuma base de código for indicada, o tempo de execução examina a montagem da maneira usual. Se não usássemos nenhuma sugestão da base de código, analisaremos as heurísticas padrão. Mas se usarmos uma sugestão de base de código, só investigaremos esse local (depois do GAC, é claro), nada mais. 5. Se a montagem tiver um nome forte, a configuração da base de código pode estar em qualquer lugar na intranet local ou na Internet. Se a montagem for uma montagem privada, a configuração da base de código deve ser um caminho relativo ao diretório do aplicativo8217s. Isso é muito fácil de entender. Mas gosto de esclarecer o caminho relativo. A dica do Codebase na política do editor e machine. config deve ter um caminho absoluto. Não tem sentido ter um caminho relativo da base de código na política do editor e machine. config. A dica do Codebase no app. config pode ser relativa, e é relativa à base da aplicação. Então, se você disser ltcodeBase version82212.0.0.08243 href8221subdirmyAssembly. dll8221gt. Ele será expandido para application basesubdirmyassembly. dll. 6. Para montagens sem um nome forte, a versão é ignorada e o carregador usa a primeira aparência de ltcodebasegt dentro de ltdependentAssemblygt. Isso é facilmente compreendido. 7. Se houver uma entrada no arquivo de configuração do aplicativo que redireciona a ligação para outra montagem, o redirecionamento terá precedência mesmo se a versão de montagem n2177 corresponder ao pedido de ligação. Este é um pouco confuso. Deixe-me esclarecer com um exemplo. Digamos que você tenha o seguinte arquivo de configuração:

No comments:

Post a Comment