Não foi possível copiar o arquivo - o acesso ao caminho foi negado

238

Estou usando o Visual Studio 2005. Depois de pegar o código do controle de versão primeiro, o aplicativo c # .net é executado corretamente. Mas, depois de fazer algumas modificações, ao criar, estou recebendo o seguinte erro:

Erro 383 Não foi possível copiar o arquivo ".. \ root \ leaf \ Bin \ Debug \ test.Resources.xml" para "Bin \ Debug \ test.Resources.xml". O acesso ao caminho 'Bin \ Debug \ test.Resources.xml' foi negado. li.rollmodel

Alguém sabe por que esse problema está ocorrendo?

Editar Posso ver que toda a minha pasta de código-fonte do projeto é somente leitura e não consigo remover a propriedade somente leitura.

Primeiro, alguém pode me dizer como remover a propriedade Somente leitura para esta pasta? Eu tentei removê-lo, mas a propriedade somente leitura persiste. Também tentei do lado do controle de versão e isso também não funcionou.

ricky
fonte
Isso está em um compartilhamento de rede? Você tem acesso administrativo em sua máquina? Esta pergunta pode ser mais adequada à falha do servidor ou ao superusuário.
precisa saber é o seguinte
não ,, eu estou usando minha própria máquina eu tenho acesso administrativo
ricky
Eu resolvi esse problema copiando manualmente o arquivo de um local para local exigido, porbably o problema está relacionado com MSBUILD com o arquivo somente leitura
ricky

Respostas:

277

Resolvi esse problema excluindo os arquivos contenciosos da pasta bin e reconstruindo o projeto.

DiligentKarma
fonte
50
post antigo, eu sei, mas eu tinha o mesmo problema agora. Certifique-se de que o VS também esteja fechado, pois, em alguns casos, negará acesso para excluir a pasta
Eon
1
Nota: eu não entendi, no começo, tenho que excluir esses arquivos na pasta de saída do projeto principal e não na pasta de saída da dll. Então, alertando aqui :)
Piero Alberto
6
No meu caso, até fechar o VS não foi suficiente para liberar a pasta e permitir que eu a excluísse - o ProcessExplorer mostrou que "VBCSCompiler.exe" ainda a estava usando. Nesse caso, sair do Windows e entrar no Windows (ou simplesmente acabar com o processo) fez o truque, permitindo-me reconstruir a solução e colocar tudo em funcionamento novamente.
S. Jensen
2
no meu caso, o motivo pelo qual a pasta e a solução se transformaram no ReadOnly e, posteriormente, o VS teve problemas para construí-lo, foi porque alguns arquivos falharam ao sincronizar com o GoogleDrive e ficaram bloqueados por esse processo. Então, para que eu fosse reconstruído corretamente, tive que fechar o GoogleDrive e, em seguida, ele foi criado perfeitamente.
precisa
1
Eu achei o Bitdefender Antivirus Free o culpado.
Warwick
123

Apenas verifique se a pasta NÃO é somente leitura e reconstrua a solução

Wahid Bitar
fonte
12
Estou tentando remover a caixa de seleção 'Somente leitura' preenchida com a cor verde. Quando clico em 'Aplicar' e, em seguida, em 'Ok', e depois checo as propriedades dessa pasta novamente, posso ver novamente no estado anterior (novamente com a caixa de seleção 'Somente leitura' preenchida com a cor Verde). Alguém tem solução sobre isso?
Vikram
Além disso, verifique se o arquivo não está bloqueado. No meu caso, o arquivo estava em um compartilhamento e outra pessoa o abriu.
Dan Bechard
Feche o Visual Studio antes de remover o atributo somente leitura. Porque o arquivo em questão pode estar em uso (bloqueado)
Gautam Jain
4
Criou uma extensão do Visual Studio para limpar os atributos ReadOnly e Hidden de DLLs que bloqueiam a compilação. UnBlockDllExtension: marketplace.visualstudio.com/…
vrnithinkumar
69

Resolvi este problema: Feche o Visual Studio, abra-o novamente e carregue a solução, Reconstrua sua solução. Meu problema ocorreu usando o TFS e o VIsual Studio 2010.

jordenysp
fonte
22
Adicione o mesmo problema no VS2013. Caso clássico da multidão de TI. "Olá, é TI, você tentou desligar e ligar novamente?".
Maxime Rouiller
1
Mesmo cenário: TFS e VS 2010. O mesmo problema. A mesma solução. 1
ajeh
2
Isso também aconteceu no VS2015: p
Yoo Matsuo
4
E o mesmo no VS2017
arame3333
1
Eu já enlouqueceu tentando corrigir isso, acabou o bom método antigo, se alguma coisa não funcionar, reinicie-lo, funcionou muito bem
Mykhailo Seniutovych
50

Finalize o processo VBCSCompiler.exee reconstrua.

MuriloKunze
fonte
3
Foi isso que resolveu para mim. Obrigado tipo estranho: D
Morsus 10/10
Sim, é isso.
kal kokah
Muito obrigado, seu tipo estranho! : D
Agent007
em algum momento ele trabalhou para mim nem sempre, devo dizer que vai resolver uma parte do problema há uma outra coisa também que está causando esse problema
Amit Bisht
Tente isto também pode ajudá-lo a stackoverflow.com/a/12740768/2445111 #
Amit Bisht
23

Eu pisei nesse problema também.

Primeiro, verifique se você mapeou sua pasta bin e obj para o programa Source Control.

Isso pode transformar os arquivos das pastas de binários em arquivos somente leitura, o que torna impossível para o visual studio substituí-los quando compila o código.

Vá e remova o mapeamento dessas pastas, verifique as alterações e tente novamente.

Meu problema ocorreu usando o TFS (Team Foundation Server) e o Visual Studio 2010.

Espero que isso ajude alguém.

Heitor Corrêa
fonte
1
Eu só queria acrescentar que a resposta da Heitorolecarte corrigiu meu problema e isso pode ocorrer com o Visual Studio 2012 e o TFS2010.
Rodney
20

Execute seu Visual Studio como administrador

Alejandro Haro
fonte
1
Nota: aqui é uma maneira curta e simples para sempre executar como administrador por padrão stackoverflow.com/questions/12257110/...
wmebane
Essa resposta me disse o suficiente para saber apenas adicionar permissão de gravação a "Usuários" na minha pasta de saída - e isso resolveu instantaneamente o meu problema (que era que eu não conseguia publicar nem na primeira vez).
X Goodrich
9

Eu uso o Visual Studio 2013. Eu enfrentei esse problema 2 vezes:

  1. Na primeira ocasião, eu estava executando o Visual Studio sem direitos de administrador. Então, fechei o VS e o iniciei usando a opção ' Executar como administrador '. Isso resolveu meu problema.

  2. Na segunda ocasião, reiniciei o VS várias vezes, sempre certificando-me de que estou executando-o como administrador. Além disso, reconstruí a solução várias vezes. Mas, apesar disso, estava recebendo erro. Depois disso, removi o arquivo em questão do local de destino (o arquivo já estava presente pode ser da compilação anterior no local em que ele tenta copiar) e reconstruí a solução . Depois disso, o erro desapareceu e tudo correu bem!

Vikram
fonte
8

No meu caso, foi o antivírus que bloqueou o arquivo.

Claudiu Constantin
fonte
BitDefender 6.2 aqui
JOG
7

Isso elevou sua cabeça novamente no Visual Studio 2017; nesse caso, a causa é o processo do Application Insights ServiceHub.DataWarehouseHost.exe.

Há uma solução alternativa discutida no aviso de thread MSB3026: Não foi possível copiar "obj \ Debug \ netcoreapp1.1 \ src.pdb" para "bin \ Debug \ netcoreapp1.1 \ src.pdb" , que é adicionar uma pré-compilação evento ao projeto para interromper o processo toda vez que o projeto for construído. Citando a partir desse link:

  • Clique com o botão direito do mouse nas propriedades do projeto
  • Escolha propriedades
  • Construir Eventos
  • Linha de comando do evento de pré-construção
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Salvar e construir
tomRedox
fonte
6

Alguém pode saber por que esse problema está chegando?

Analisando sua resposta de que você resolveu seu problema através de cópia manual, eu diria que o código em que você estava trabalhando foi criado por outro usuário (com privilégios de administrador também), por isso estava bloqueado para você. Executando cópia -? colar, você fez sua PRÓPRIA cópia da fonte com todo o acesso necessário. A única coisa a se notar é que, nesse caso, se esse outro desenvolvedor precisar trabalhar na sua cópia, ele / ela entrará no mesmo problema que você teve antes.

Tigran
fonte
6

Primeiro, vá para o local do arquivo. Em seguida, clique com o botão direito do mouse na pasta do arquivo -> Propriedades -> Opção Somente Leitura Desmarcada e aplique aos arquivos e suas subpastas. Resolveu o meu problema. Feliz codificação!

Vinayak Savale
fonte
3

Eu adicionei novamente todas as minhas dependências / referências que não são do .NET e ele fez o truque.

Shawn
fonte
3

Eu mesmo resolvi esse problema. O problema era que a solução foi aberta em outro local. Depois de fechá-lo, funciona

Henley Chiu
fonte
Eu fiz isso também. Sempre verifique primeiro as coisas óbvias e fáceis, pois meu destino estava em uma unidade de rede, pois eu estava depurando em outra máquina.
Simon Unsworth
3

Tinha o mesmo problema, mas reiniciar o Visual Studio toda vez não era uma opção para mim , pois o problema ocorre às vezes com muita frequência.

Eu lidei com isso instalando o Unlocker ( tenta instalar qualquer barra de ferramentas na instalação, por isso não se esqueça de desmarcar isso ), este aplicativo me dá acesso rápido para renomear / excluir um arquivo ".xml" bloqueado . Eu sei que isso também é uma solução alternativa também, mas para mim foi a solução mais rápida para resolver esse problema.

David Leitner
fonte
Obrigado por isso. Eu tive esse problema no ano passado e pensei que era porque alternaria entre Administrador e não, mas agora sei que é um processo crítico estúpido relacionado ao Panda Antivirus (PSANHost.exe, não presente no Gerenciador de Tarefas) que bloqueou o arquivos.
Yeejuto 17/08/2015
3

Post antigo, mas esse zumbi está chegando ao VS 2017 (eu não expliquei por que são apenas "alguns" projetos). Nesse caso, não são permissões de usuário , mas o processo do IIS Express ainda está usando os arquivos.

Você verá o ícone na bandeja de tarefas Ícone do IIS Express

  1. Clique com o Botão Direito
  2. Saída
  3. Você deve poder rebuildsem essa mensagem irritante de "permissão negada".

É também por isso que "reiniciar o Visual Studio" irá "corrigir" o problema. Fazendo isso, interrompe o IIS Express.

Hth ...

EdSF
fonte
2

Criei esse problema quando adicionei um novo projeto de instalação à solução e adicionei arquivos diretamente da pasta / bin / release do projeto principal do aplicativo à pasta de arquivos do aplicativo do projeto de instalação. O controle de origem do projeto de instalação estava constantemente me impedindo de concluir a compilação do projeto principal do aplicativo.

Solução: crie uma pasta de despejo separada fora de qualquer um dos projetos que conterá todos os arquivos a serem incluídos na instalação e adicione-os a partir daí. É uma dor, porque agora tenho que lembrar de copiar todos os arquivos para cada novo pacote de instalação. Talvez eu veja se consigo fazer algo com as ações pós-compilação ou uma compilação automatizada para tornar o processo mais suave.

Portia
fonte
2

Se você copiar qualquer arquivo para uma solução, verifique se os arquivos não estão no modo Somente Leitura. Clique com o botão direito do mouse no arquivo e desmarque a opção de atributo resolvido meu problema.

InitialV
fonte
2

Eu tive o mesmo erro, mas estou usando o controle de versão do Perforce . Aqui está como eu consertei.

  1. Fechado Perforce P4V cliente
  2. Reiniciado o Visual Studio 2010 (pode não ser necessário)
  3. Reconstruiu o projeto, que teve sucesso
  4. Senti-me excepcionalmente feliz e enojado ao mesmo tempo
Madmartigan
fonte
1
Eu tenho a mesma configuração, mas não consegui
acessar as
2

Eu também tive o mesmo problema. Recebi mensagens de erro relacionadas a não podem ser copiadas, pois o acesso ao caminho foi negado. No meu caso, todos os meus arquivos DLL e XML, etc., estão na pasta D: \ TFS \ Example \ Bin \ Debug.

Clique com o botão direito do mouse na pasta Bin, clique em Propriedades e vi que a caixa de seleção Somente leitura está marcada em Atributos.

Desmarquei a caixa de seleção Somente leitura e clicou em Aplicar e clicou em OK no novo pop-up mostrado.

Voltei ao Visual Studio e criei minha solução, que estava me dando mensagens de erro.

Voilaa .. Desta vez, ele foi criado com sucesso, sem erros.

Não sei se isso é perfeito, mas fiz isso para resolver meu problema.

Ziggler
fonte
2

Verifique o Gerenciador de tarefas e verifique se você não tem um processo devenv.exe travado. Mate o processo descontrolado e tente novamente.

Hazen Hills Software
fonte
2

Vá para o caminho do arquivo e desmarque a caixa de seleção somente leitura deste arquivo.

Ramy Othman
fonte
1

Eu sei que é um tópico antigo, mas para aqueles que procuram respostas, como eu há alguns minutos, recomendo tentar reiniciar o computador primeiro. Isso por si só consertou. Antes não podia nem copiar manualmente para a pasta.

Joao Leme
fonte
1
me ajudou também. Gangue de 2020
Vitor Ceolin
1

Apenas clique com o botão direito do mouse no seu projeto MVC e clique na opção limpa. Eu tive um problema semelhante e a limpeza do projeto antes da reconstrução o resolveu para mim.

Ehsan
fonte
1

Eu também tive o mesmo problema. Corrigi-o desmarcando as propriedades Somente leitura da pasta raiz.

Rajan Kumar Kharel
fonte
Às vezes, a solução é tão simples e óbvia quanto essa. Em vez de continuar batendo a cabeça e contornar procedimentos complexos e intermináveis, verifique esse tipo de possibilidades simples e sua vida ficará muito mais fácil. Sou grato ao StackOverflow por nos fornecer uma comunidade tão vasta de especialistas que pode nos oferecer a ajuda necessária em momentos desesperados.
Choudhury Saadmaan Mahmid
1

Eu também tive esse problema. Aqui está como é resolvido isso

  • Excluir binpasta do projeto.
  • Feche o estúdio visual.
  • Limpeza de disco da unidade C.
  • Reabra o projeto no visual studio.
  • E, em seguida, recrie a solução.
  • Execute o projeto.

Esse processo funciona para mim.

Manoj
fonte
1

Consegui resolver o problema removendo o arquivo de destino que está reclamando (no seu exemplo "Bin \ Debug \ test.Resources.xml") da pasta bin do site de destino e construí-lo. Isso foi corrigido por mim.

Rama Krshna Ila
fonte
1

1) feche a solução do visual studio

2) navegue até o prompt de comando -> execute como administrador -> iisreset / stop

3) navegue até c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> Arquivos temporários de Asp.NET -> Exclua todos os arquivos e pastas nesse caminho.

4) Navegue de volta ao prompt de comando -> iisreset / start

5) Agora abra o visual studio -> execute como administrador -> limpe a solução e construa-a (não reconstrua .. apenas a compilação funcionou para mim)

Krishna
fonte
0

Você não deve alterar o atributo da pasta para não somente leitura. O motivo pelo qual você está vendo essa mensagem de erro é que o controle de origem pressupõe que você armazena apenas seus arquivos diversos em outro lugar que não seja a pasta bin, pois é reservado para arquivos criados automaticamente pelo .Net e não deseja adicioná-los à origem ao controle.

Sugiro que, em vez de usar Environment.CurrectDirectory(que suponho que você esteja usando atualmente), crie uma pasta chamada "MyProjectName" no endereço% appdata% e use:

System.IO.Path.Combine(Environment.GetEnvironmentVariable("appdata"),"YourProjectName").

Bizhan
fonte
0

Então, acabei de encontrar o mesmo problema, a causa minha, compartilhava minha pasta de desenvolvimento para poder usar um mac como host de construção para um aplicativo IOS usando o Xamarin. O projeto estava sendo executado no mac, que tomou posse da dll, portanto, não pude fazer alterações nessa dll de qualquer outro lugar. Simplesmente parar o aplicativo no mac retornou a propriedade para mim, o que permitiu o acesso total novamente. Espero que isso faça desde então.

Jon Willis
fonte