Pergunta

Sou responsável por manter o código VB6 herdado e encontrei um problema irritante no que diz respeito ao bloqueio da DLL de um projeto. (Vamos chamá -lo Meu projeto e MyProject.dll)

Quando eu carrego Meu projeto No VB6 IDE, sou capaz de compilar a DLL compatível com binários resultantes MyProject.dll. Eu posso então executar meu aplicativo Web (ASP clássico) que liga a DLL (ou qualquer outra coisa para esse assunto).

Então, quando tento recompilar o comando, recebo um erro de 'permissão negado'. Então me pego tendo que executar as etapas a seguir para que a DLL seja desbloqueada:

  1. Verifique eu não tenho projetos dependentes abertos em outros Ides VB6
  2. Recicle o IIS
  3. Verifique se o arquivo não é apenas leitura (às vezes será se eu o fiz no controle de origem)
  4. Feche o projeto e reabre -o.

Muitas vezes, é a última etapa que corrige o problema e me permite recompilar, o que significa que o VB6 IDE está realmente bloqueando a DLL do projeto carregado!

Meu colega me explicou que tinha a ver com a maneira como um projeto VB6 trabalha com compatibilidade binária na DLL, mas não conseguiu sugerir uma resolução.

Minhas pesquisas em outros lugares renderam muito pouco em termos de respostas. As consultas de pesquisa relacionadas a isso tendem a retornar muitas respostas não relacionadas (talvez eu esteja perguntando a coisa errada dos mecanismos de pesquisa).

A coisa mais próxima que pude encontrar no Stackoverflow foi essa questão de alguns anos atrás, mas realmente não se encaixa na conta.

Alguém tem outras sugestões que possam melhorar isso?

Foi útil?

Solução

Manter uma cópia de MyProject.dll nomeado MyProject.cmp e configuração compatível binária Point para o seu arquivo .cmp. Dessa forma, você não precisará reabrir o arquivo do projeto (etapa 4).

Durante o check-in, você pode marcar Mantenha o check-out para pular a etapa 3 também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top