256
votes

I am using Visual Studio 2005. After taking code from version control first, the c#.net application runs correctly. But, after doing some modifications, when I build I am getting the following error:

Error 383 Unable to copy file "..\root\leaf\Bin\Debug\test.Resources.xml" to "Bin\Debug\test.Resources.xml". Access to the path 'Bin\Debug\test.Resources.xml' is denied. li.rollmodel

Does anybody know why this issue is occurring?

Edit I can see that my entire project source code folder is Read-only, and I am not able to remove the read-only property.

First, can anybody tell me how to remove the Read-only property for this folder? I have tried removing it but the read-only property persists. I tried from the version-control side also and that did not work, either.

30
Is this on a network share? Do you have administrative access on your machine? This question might be a better fit on serverfault or superuser. - arunkumar
no,, i am using my own machine i have administrative access - ricky
i solved that problem by manually copying the file from one location to required location,porbably the problem is related to MSBUILD with readonly file - ricky

30 Answers

299
votes

I solved this problem by deleting the contentious files from bin folder and rebuilding the project.

129
votes

Just make sure that the folder is NOT Read-Only and rebuild the solution

71
votes

I solved this problem: Close Visual Studio, open it again and load the solution, Rebuild your solution. My problem occurred using TFS and VIsual Studio 2010.

52
votes

Kill process VBCSCompiler.exe and rebuild.

23
votes

I stepped into this problem too.

First go and check if you have mapped your bin and obj folder to the Source Control program.

This may be turning your files from binaries folders into read only archives, which make impossible to visual studio to overwrite them when it compiles the code.

Go and remove the mapping from these folders, check the changes and try again.

My problem occurred using TFS(Team foundation server) and Visual Studio 2010.

Hope this helps someone.

22
votes

Run your Visual Studio as Administrator

14
votes

In my case it was the antivirus which blocked the file.

9
votes

I use Visual Studio 2013. I faced this problem 2 times:

  1. On first occasion, I was running Visual Studio without Administrator rights. So, I closed VS and started it using 'Run as administrator' option. This solved my problem.

  2. On second occasion, I restarted VS many times, every time making sure that I am running it as an administrator. Also, I rebuilt solution many times. But, in spite of that I was getting error. After that, I removed the concerned file from the target location (the file was already present may be from the previous build at the location where it tries to copy to) and rebuilt the solution. After that, error went away and everything ran smoothly!

8
votes

First go to location of the file. Then right click on the folder of the file -> Properties -> Unchecked Read Only Option and apply to files and its sub folders. It resolved my issue. Happy Coding!

7
votes

This has reared it's head again in Visual Studio 2017, in this case the cause is the Application Insights process ServiceHub.DataWarehouseHost.exe.

There is a workaround discussed in the thread warning MSB3026: Could not copy "obj\Debug\netcoreapp1.1\src.pdb" to "bin\Debug\netcoreapp1.1\src.pdb", which is to add a pre-build event to the project to kill the process every time the project is built. Quoting from that link:

  • Right click properties on project
  • Choose properties
  • Build Events
  • Pre-build event command line
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Save and build
6
votes

Can any body know why this issue is coming?

Looking at your response that you resolved your problem by manual copying, I would say that the code you were working on was made by some other user (with administrator privileges too) so it was locked to you. By performing copy --? paste, you made your OWN copy of the source with all access you required. The only thing to notice is that, in this case if this other developer will need to work on your copy, he/she will jump in pretty same problem you got before.

4
votes

Old post, but this zombie is hitting VS 2017 (I haven't dug into why it's just "some" projects). In this case, it's not user permissions, rather IIS Express process is still using the files.

You'll see the icon in your task tray IIS Express icon

  1. Right Click
  2. Exit
  3. You should be able to rebuild without this annoying "permission denied" message.

This is also why "restarting Visual Studio" will "fix" the issue. Doing so, stops IIS Express.

Hth...

3
votes

I re-added all of my non-.NET dependencies / references and it did the trick.

3
votes

I resolved this issue myself. The problem was I had the solution opened in another place. After closing it it works

3
votes

Had the same problem, but restarting Visual Studio every time was no option for me, as the issue occurs sometimes very often.

I handled it by installing Unlocker (tries to install any toolbar at installation, so don't forget to uncheck this), this application gives me fast access to rename/delete a locked ".xml"-File. I know that this only a workaround too, but for me it was the fastest solution to solve this problem.

2
votes

I created this problem when I added a new setup project to the solution, and then added files directly from the /bin/release folder of the main application project to the application files folder of the setup project. The source control of the setup project was consistently blocking me from completing a build of the main application project.

Solution: create a separate dump folder outside of any of the projects that will contain all the files to be included in the install, and add them from there. It's a pain because now I have to remember to copy all the files for each new install package. I might see if I can do something with post-build actions our an automated build to make the process smoother.

2
votes

If you copy any files across to a solution, make sure the files are not in Read Only mode. Right click on file and uncheck the attribute option solved my problem.

2
votes

I had the same error but I am using Perforce version control. Here's how I fixed it.

  1. Closed Perforce P4V client
  2. Restarted Visual Studio 2010 (might not be necessary)
  3. Rebuilt the project, which succeeded
  4. Felt exceptionally happy and disgusted at the same time
2
votes

I also had same problem. I got error messages that related to cannot copy since access to path denied. In my case all my dll's and xml files and so on are place at D:\TFS\Example\Bin\Debug folder.

I right clicked on Bin folder and clicked Properties and saw that Read-only check box is checked under Attributes.

I un-checked Read only check box and cliked Apply and clicked OK on the new popup that is shown.

I went back to Visual Studio and build my solution which was giving me error messages.

Voilaa.. This time it build successfully without errors.

I donot know whether this is perfect but I did this to solve my issue.

2
votes

Check Task Manager and make sure you don't have a devenv.exe process hanging. Kill the runaway process and try again.

2
votes

Go to file's path then un-check read only checkbox of this file.

2
votes

Most of the answers I have seen are objectively exploring possible issues with the environment, which is probably correct for 99% of the people running into this issue (unable to copy file from ... to ... access is denied).

I thought I should share my experience for the 1% who ran into this problem due to misc reasons.

I wrote a batch file renaming program that i use to act on tens of thousands of files, and my AntiVirus interpreted it as trojan and auto quarantined it. Having this path sit in my AntiVirus' blacklist, visual studio can never copy the *.exe into the bin folder, hence resulting unable to copy .exe.

My resolution is to whitelist this path and the issue is resolve.

Cheers.

1
votes

I know its an old thread but for those looking for answers, like me a few minutes ago, I recommend trying to restart your computer first. That alone fixed for me. Before could not even manualy copy to the folder.

1
votes

Just right click on your MVC project and click on the clean option. I had a similar problem and cleaning the project before rebuilding resolved it for me.

1
votes

I had also the same problem. I fixed it by unchecking the Read-only properties of root folder.

1
votes

I also had this issue. Here's how is resolved this

  • Exclude bin folder from project.
  • Close visual studio.
  • Disk cleanup of C drive.
  • Re-open project in visual studio.
  • And then rebuild solution.
  • Run project.

This process is works for me.

1
votes

Changing the output path worked for me in Visual Studio 2015. This should help - Changing the Build Output directory

1
votes

I was able to resolve the problem by removing the target file which is complaining(in your example "Bin\Debug\test.Resources.xml") from bin folder of target web site and re build it.That fixed it for me.

1
votes

1) close the visual studio solution

2) navigate to command prompt --> run as administrator--> iisreset /stop

3) navigate to c--> Windows --> Microsoft.Net --> Framework64--> v4.030319--> Temporary Asp.NET Files --> Delete all the files and folders in this path.

4) Navigate back to command prompt --> iisreset /start

5) Now open the visual studio --> run as administrator --> clean the solution and build it(don't rebuild..just build worked for me)

1
votes

I had the same issue, To resolved this i had checked/done several things

What Didn't work

1) Read/write permissions were given to directory 
2) Restarted visual studio
3) Tried deleting visual studio temp files

What worked at last

Just paste the command given by Fred Morrison into the "Package Manager Console":

Get-Process | Where-Object -Property Name -EQ 'VBCSCompiler' | Stop-Process -Force -Verbose

Note: Just an observation Restarting Visual studio might not work in this case but restarting system can because stoppin process "VBCSCompiler" was the solution so we can do it either way.