Sempre que eu tentava copiar 4 arquivos na minha pasta bin, após interromper o serviço principal, recebia um erro com um arquivo (TexteDll). O erro é:
Cannot copy TexteDll: The requested operation cannot be performed on a file
with a user-mapped section open
Pode ser devido a algum bloqueio do sistema. Ou talvez outro processo esteja usando essa DLL. Quando pesquisei no Google, descobri que a reinicialização do sistema pode resolver isso.
Alguém pode sugerir uma causa ou solução para isso? Inspecionei as propriedades do TexteDll (geral, versão, segurança, etc.). Tudo parece normal.
Respostas:
No meu caso, foi o Explorer que estava bloqueando a DLL que foi compilada na pasta Debug ... Estranho, não é?
Descobri usando uma ferramenta chamada Unlocker.
Tive que excluir com o Unlocker, mesmo quando dizia que não havia bloqueio no arquivo, e não pude excluir a pasta até não excluir esse único arquivo ...
Depois disso, compilou.
EDITAR:
Eu descobri por que no meu caso isso estava acontecendo. Eu tive a DLL aberta em um editor de texto dentro do Visual Studio ...
fonte
Às vezes, quando você clica duas vezes em um aviso sobre a incompatibilidade da versão de montagem referenciada entre dois ou mais projetos, você esquece de fechar a janela de exibição de montagem e ela permanece lá entre outras guias ... para que o assembly seja bloqueado pelo próprio VS e Demorei bastante tempo para descobrir isso :)
Tenha cuidado com o poder que o VS fornece;)
fonte
feche todos os documentos no VS e tente reconstruir novamente. Se não funcionar, reinicie o VS. Este problema está relacionado ao bloqueio de arquivos DLL.
fonte
Feche o visual studio, exclua a lixeira, depure a pasta de lançamento e inicie o projeto do visual studio novamente. isso resolveu meu problema
fonte
Eu tive o mesmo problema e, no meu caso, parecia que o arquivo de saída existente estava bloqueado por outro aplicativo.
Você pode verificar qual aplicativo está bloqueando seu arquivo de saída com o OpenedFilesView: http://www.nirsoft.net/utils/opened_files_view.html
fonte
Sou desenvolvedor e não gosto de aplicativos injetados no Registery como o Unlocker. Eu usei o SysInternals Process Explorer, que processou minha DLL
Find > Find Handle or Dll [Ctrl-F]
e matou o processo.fonte
Outros já estabeleceram que esse erro ocorre devido a outro aplicativo ter um bloqueio no arquivo. Só queria salientar que
git diff
bloqueia arquivos também até você sair dele. Foi isso que causou isso no meu caso.fonte
Eu tive o mesmo problema. Como eu resolvi isso foi:
fonte
Você está executando algum software antivírus. É possível que o software AV (ou algum outro software) esteja lendo o arquivo usando as APIs de mapeamento de arquivos que causaram o problema.
fonte
No meu caso, tive que interromper um
MSBuild.exe
processo suspenso que estava bloqueando o arquivo (ele estava lá mesmo depois que fechei o Visual Studio).fonte
A exclusão da pasta obj e a reconstrução funcionaram para mim
fonte
Eu tive o mesmo problema. Reiniciar não funcionou para mim. Houve um processo chamado VBSCompiler em execução no gerenciador de tarefas. Eu tive que terminar o processo para corrigir este erro.
fonte
Nenhuma das soluções postadas aqui funcionou para mim. Era devenv.exe (Visual Studio) bloqueando o arquivo, mas se eu o reiniciasse, ele seria novamente bloqueado.
Estranhamente, o Windows não me deixou excluir os arquivos (para a Lixeira), mas Shift + Delete (exclusão permanente) funcionou.
fonte
Feche o Visual Studio e execute-o como administrador. Está resolvido o meu problema.
fonte
A solução para mim foi encerrar todas as instâncias do VS e eliminar qualquer processo pendente do devenv.exe.
fonte
A solução para mim foi reiniciar o computador.
fonte
Foi apontado em 2016 por Andrew Cuthbert que o git diff também bloqueia os arquivos até você sair dele.
Esse não será o caso do Git 2.23 (terceiro trimestre de 2019)
Veja commit 3aef54e (11 jul 2019) por Johannes Schindelin (
dscho
) .(Incorporado por Junio C Hamano -
gitster
- in commit d9beb46 , 25 de jul de 2019)fonte
Eu estava vendo esses erros ao criar aplicativos Dot Net com o Ant.
No meu caso, era o nosso software de backup corporativo, o Symantec DLO Agent. Parar e excluir o diretório no meu software antivírus e fechar o Visual Studio parece funcionar.
fonte
no meu caso excluiu a pasta obj na raiz do projeto e o projeto de reconstrução resolveu meu problema !!!
fonte
Eu encontrei esse erro e o problema era que o FxCop estava sendo executado no meu projeto. Fechei o FxCop e pude compilar novamente.
fonte
Se for um aplicativo Web, excluir arquivos na pasta Arquivos Temporários do ASP.NET pode ser uma solução.
fonte
Se você estiver usando perfis como o AQ Time, eles também podem estar bloqueando o arquivo. A solução nesse caso seria reiniciar o criador de perfil ou simplesmente descarregar / carregar o conjunto em questão do criador de perfil. No AQ Time, notei que ele está liberando o arquivo depois de algum tempo, mas não consigo dizer o que é esse tempo limite. Parece ser aleatório
fonte
Eu também recebi o mesmo erro hoje. Resolvi esse problema reconstruindo o projeto.
fonte
Eu tive esse erro causado por um arquivo 'mais' vs em questão deixado em execução em outro console. Opa
fonte
Nenhuma das opções acima resolveu esse problema.
Alguém tinha um projeto em minha solução definido para usar a CPU x64 na configuração de compilação. Mudá-lo para Qualquer CPU fez com que a construção usasse uma nova pasta. Ainda não sei qual processo teve (tem) um bloqueio nesse arquivo.
fonte
Eu tive esse mesmo problema. Eu removi a dll da pasta temp, remova o acesso somente leitura e reiniciei a máquina e consegui funcionar.
fonte
No meu caso, eu apenas fecho todas as instâncias e copio minha pasta do aplicativo raiz e colo-a em um local diferente e, em seguida, abra a solução no VS, funciona ....
fonte
Meu problema também foi resolvido examinando o Process Explorer. No entanto, o processo que tive que matar foi o MySQL Notifier.exe que ainda estava em execução após o fechamento de todos os aplicativos VS e SQL.
fonte