我使用的是Visual Studio 2005。在先从版本控制中获取代码后, c#.net应用程序正常运行。但是,在做了一些修改后,当我建立我得到以下错误:

错误383无法复制文件“..\root\leaf\Bin\Debug\test.Resources.xml”到 “本\调试\ test.Resources.xml”。访问路径“Bin\Debug\test.Resources.xml”是 否认。li.rollmodel

有人知道为什么会出现这个问题吗?

编辑我可以看到我的整个项目源代码文件夹是只读的,我无法删除只读属性。

首先,有人能告诉我如何删除这个文件夹的只读属性吗?我尝试删除它,但只读属性仍然存在。我也从版本控制方面尝试过,但也没有成功。


当前回答

遇到同样的问题,但是每次重新启动Visual Studio对我来说都是没有选择的,因为这个问题有时会经常发生。

我通过安装Unlocker来处理它(试图在安装时安装任何工具栏,所以不要忘记取消选中这个),这个应用程序让我快速访问重命名/删除锁定的“.xml”-文件。我知道这也只是一个变通办法,但对我来说,这是解决这个问题最快的办法。

其他回答

只需确保该文件夹不是只读的,然后重新构建解决方案

我使用Visual Studio 2013。我曾两次遇到这个问题:

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. 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!

您不应该将文件夹属性更改为非只读。 你看到这个错误消息的原因是源代码控制假设你只存储了你的杂项文件,而不是bin文件夹,因为它保留了由。net自动创建的文件,它不想把它们添加到源代码控制中。

我建议不要使用Environment。CurrectDirectory(我假设你目前正在使用),你在%appdata% address中创建一个名为“MyProjectName”的文件夹,然后使用:

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

这可能是最初从源代码控制(TFS等)加载源代码的奇怪副产品,其中所有文件和文件夹都是写保护的。转到顶层目录并检查属性,您可以发现Read-only属性被选中。取消勾选,系统将询问您是否希望将顶层下的所有dirs设置为可写。这应该能解决问题。

对我来说,问题是解决方案中的另一个项目有相同的.dll文件,该文件最近已签入。

手动将最近检入的.dll版本从另一个项目bin文件夹复制到产生错误的项目的bin文件夹中,可以修复这个问题。

对于我们的解决方案,一个长期的解决方案是在解决方案中的所有项目中使用相同的.dll文件,而不是在多个项目中使用相同的.dll文件,但我不喜欢解决这个问题,所以快速的解决方案是复制新版本。