无法复制文件-拒绝访问路径


238

我正在使用Visual Studio2005。首先从版本控制中获取代码后,c#.net应用程序将正确运行。但是,在进行一些修改之后,在构建时出现以下错误:

错误383无法将文件“ .. \ root \ leaf \ Bin \ Debug \ test.Resources.xml”复制到“ Bin \ Debug \ test.Resources.xml”。拒绝访问路径“ Bin \ Debug \ test.Resources.xml”。滚动模型

有人知道为什么发生此问题吗?

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

首先,有人可以告诉我如何删除此文件夹的只读属性吗?我尝试将其删除,但只读属性仍然存在。我也从版本控制方面进行了尝试,但这也不起作用。


这是在网络共享上吗?您在计算机上具有管理权限吗?这个问题可能更适合serverfault或超级用户。
2011年

不,我正在使用自己的计算机,我具有管理访问权限
ricky

我通过手动将文件从一个位置复制到所需位置来解决该问题,很可能该问题与具有只读文件的MSBUILD有关
ricky

Answers:


277

我通过从bin文件夹中删除有争议的文件并重建项目来解决了这个问题。


50
我知道是旧帖子,但我刚才遇到了同样的问题。确保VS也已关闭,因为在某些情况下它会拒绝访问以删除文件夹
Eon

1
小提示:我不明白,起初,我必须删除这些文件在主项目的输出文件夹中,而不是dll的输出文件夹中。所以,在这里警告:)
Piero Alberto

6
就我而言,即使关闭VS也不足以释放文件夹并允许我删除它-ProcessExplorer显示“ VBCSCompiler.exe”仍在使用它。在这种情况下,退出并登录Windows(或只是终止进程)就可以解决问题,这使我可以重新构建解决方案并使一切重新运行。
S. Jensen

2
在我的案例中,文件夹和解决方案变成ReadOnly,随后VS在构建该文件夹时遇到问题的原因是因为某些文件无法同步到GoogleDrive,并被该过程锁定。因此,要使我正确地进行重建,我必须关闭GoogleDrive,然后再构建就可以了。
konrad

1
我发现是Bitdefender Antivirus Free的元凶。
华威

123

只要确保该文件夹不是只读的,然后重新生成解决方案


12
我正在尝试删除绿色填充的“只读”复选框。当我单击“应用”,然后单击“确定”,然后再次检查该文件夹的属性时,我可以再次看到以前的状态(再次将“只读”复选框填充为绿色)。有人对此有解决方案吗?
维克拉姆2015年

另外,请确保文件未锁定。就我而言,该文件是共享文件,其他人打开了它。
丹·贝查德

删除只读属性之前,请关闭Visual Studio。由于该文件可能正在使用中(锁定)
Gautam Jain

4
创建了一个Visual Studio扩展,用于清除阻止生成的dll的ReadOnly和Hidden属性。UnBlockDllExtension: marketplace.visualstudio.com/…–
vrnithinkumar

69

我解决了这个问题:关闭Visual Studio,再次打开它并加载解决方案,然后重新构建解决方案。我的问题是使用TFS和VIsual Studio 2010发生的。


22
在VS2013中添加相同的问题。IT人群的经典案例。“您好,这是IT,您是否尝试过将其关闭然后重新打开?”。
Maxime Rouiller 2014年

1
相同的场景:TFS和VS2010。相同的问题。相同的解决方案。+1
ajeh '16

2
这也发生在VS2015上:p
Yoo Matsuo

4
与VS2017中的相同
arame3333

1
我已经疯了试图解决这一问题,变成了美好的旧方法,如果事情不工作,重新启动它,工作就好
Mykhailo Seniutovych


23

我也涉足了这个问题。

首先检查您是否已将bin和obj文件夹映射到源代码管理程序。

这可能会将您的文件从Binaries文件夹转换为只读存档,这使Visual Studio在编译代码时无法覆盖它们。

从这些文件夹中删除映射,检查更改,然后重试。

我的问题是使用TFS(团队基础服务器)和Visual Studio 2010发生的。

希望这对某人有帮助。


1
我只是想补充一点,Heitorolecarte的答案解决了我的问题,这可能在Visual Studio 2012和TFS2010中发生。
罗德尼2012年

20

以管理员身份运行Visual Studio


1
注意:这是一种默认情况下始终以管理员身份运行的简单
快捷方法

这个答案告诉我足够多,我知道只需要对输出文件夹中的“用户”添加写权限-即可立即解决我的问题(这是我什至第一次都无法发布)。
X Goodrich,

9

我使用Visual Studio2013。我两次遇到此问题:

  1. 第一次,我在没有管理员权限的情况下运行Visual Studio。因此,我关闭了VS,并使用“ 以管理员身份运行 ”选项启动了它。这解决了我的问题。

  2. 第二次,我多次重启VS,每次都要确保以管理员身份运行它。另外,我多次重建了解决方案。但是,尽管如此,我还是出错了。之后,我从目标位置删除了相关文件(该文件已经存在,可能来自尝试复制到该位置的先前版本),并重新构建了解决方案。之后,错误消失了,一切运行顺利!



7

这在Visual Studio 2017中再次引起了轩然大波,在这种情况下,原因是Application Insights进程ServiceHub.DataWarehouseHost.exe。

在线程警告MSB3026中讨论了一种解决方法:无法将“ obj \ Debug \ netcoreapp1.1 \ src.pdb”复制到“ bin \ Debug \ netcoreapp1.1 \ src.pdb”,这是要添加预构建的每次构建项目时,事件都会杀死该项目。从该链接引用:

  • 右键单击项目的属性
  • 选择属性
  • 建立活动
  • 生成前事件命令行
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • 保存并构建

6

任何人都可以知道为什么会出现这个问题吗?

查看您通过手动复制解决了问题的答复,我想说您正在使用的代码是由其他用户(也具有管理员权限)制作的,因此已被锁定。通过执行复制-?粘贴后,您就可以使用所需的所有访问权限来制作源的OWN副本。唯一需要注意的是,在这种情况下,如果另一个开发人员需要处理您的副本,他/她将遇到与您之前遇到的相同的问题。


6

首先转到文件的位置。然后右键单击文件的文件夹->属性-> 未选中的只读选项,并将其应用于文件及其子文件夹。它解决了我的问题。编码愉快!


3

我重新添加了我所有的非.NET依赖项/引用,并且做到了。


3

我自己解决了这个问题。问题是我在另一个地方打开了解决方案。关闭后可以正常工作


我也这样做了。总是先检查显而易见的简单内容,因为我的目标是在网络驱动器上,就像我在另一台机器上调试一样。
Simon Unsworth

3

遇到相同的问题,但是对我而言每次都无法重新启动Visual Studio,因为有时会经常发生此问题。

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


谢谢你 在过去的一年中,我遇到了这个问题,并认为这是因为我会在管理员之间切换而不要切换,但是现在我知道这是一个与Panda Antivirus相关的愚蠢关键过程(PSANHost.exe,未出现在任务管理器中),锁定了文件。
yeejuto

3

旧帖子,但是这个僵尸正在打VS 2017(我还没有研究为什么它只是“一些”项目)。在这种情况下,这不是用户权限,而是IIS Express进程仍在使用文件。

您会在任务栏中看到该图标 IIS Express图标

  1. 右键点击
  2. 出口
  3. 您应该能够避免出现rebuild这种令人讨厌的“权限被拒绝”消息。

这也是为什么“重新启动Visual Studio”将“解决”问题的原因。这样做,停止IIS Express。

嗯...


2

当我向解决方案中添加新的安装项目,然后直接将文件从主应用程序项目的/ bin / release文件夹添加到安装项目的应用程序文件文件夹时,便创建了此问题。设置项目的源代码控制始终使我无法完成主应用程序项目的构建。

解决方案:在任何将包含要包含在安装中的所有文件的项目之外,创建一个单独的转储文件夹,然后从那里添加它们。这很痛苦,因为现在我必须记住为每个新安装包复制所有文件。我可能会看到我是否可以使用自动生成功能来执行构建后操作,从而使流程更流畅。


2

如果将任何文件复制到解决方案,请确保文件未处于只读模式。右键单击文件,然后取消选中属性选项即可解决我的问题。


2

我有同样的错误,但是我正在使用Perforce版本控制。这是我固定的方法。

  1. 已关闭Perforce P4V客户端
  2. 重新启动Visual Studio 2010(可能没有必要)
  3. 重建项目,成功
  4. 同时感到异常快乐和反感

1
我有相同的设置,但无法执行步骤3和4 :(
user3260977

2

我也有同样的问题。由于访问路径被拒绝,我收到与无法复制有关的错误消息。在我的情况下,我所有的dll和xml文件等等都位于D:\ TFS \ Example \ Bin \ Debug文件夹中。

我右键单击Bin文件夹,然后单击属性,然后看到在属性下选中了只读复选框。

我取消选中“只读”复选框,然后单击“应用”,然后在显示的新弹出窗口上单击“确定”。

我回到Visual Studio并构建我的解决方案,该解决方案给了我错误消息。

Voilaa ..这次成功构建,没有错误。

我不知道这是否完美,但我这样做是为了解决我的问题。


2

检查任务管理器,并确保您没有devenv.exe进程挂起。终止失控过程,然后重试。



1

我知道它是一个旧线程,但是对于几分钟前喜欢我的人,我建议您尝试首先重新启动计算机。那对我来说是固定的。以前甚至无法手动复制到该文件夹​​。


1
也帮了我 2020年帮派
Vitor Ceolin

1

只需右键单击您的MVC项目,然后单击清理选项。我遇到了类似的问题,在重建之前清理了项目,为我解决了这个问题。


1

我也有同样的问题。我通过取消选中根文件夹的只读属性来修复它。


有时解决方案如此简单而显而易见。不必费神费力地处理复杂无尽的程序,只需检查这些简单的可能性,您的生活就会变得更加轻松。我非常感谢StackOverflow为我们提供了如此庞大的专家社区,他们可以在紧急时刻为我们提供必要的帮助。
Choudhury Saadmaan Mahmid 2015年

1

我也有这个问题。这是如何解决的

  • bin从项目中排除文件夹。
  • 关闭视觉工作室。
  • C驱动器的磁盘清理。
  • 在Visual Studio中重新打开项目。
  • 然后重建解决方案。
  • 运行项目。

这个过程对我有用。



1

我能够通过从目标网站的bin文件夹中删除抱怨的目标文件(在您的示例中为“ Bin \ Debug \ test.Resources.xml”)并重新构建它来解决该问题。


1

1)关闭Visual Studio解决方案

2)导航到命令提示符->以管理员身份运行-> iisreset / stop

3)导航到c-> Windows-> Microsoft.Net-> Framework64-> v4.030319->临时Asp.NET文件->删除此路径中的所有文件和文件夹。

4)导航回到命令提示符-> iisreset / start

5)现在打开Visual Studio->以管理员身份运行->清理解决方案并进行构建(不要重新构建。


0

您不应该将folder属性更改为非只读。您看到此错误消息的原因是,源代码管理假定您仅将其他文件存储在bin文件夹之外的其他位置,因为它保留了.Net自动创建的文件,并且不想将其添加到源代码中控制。

我建议不要使用Environment.CurrectDirectory(我假设您当前正在使用),而是在%appdata%地址中创建一个名为“ MyProjectName”的文件夹,然后使用:

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


0

因此,我遇到了同样的问题,我的原因,我共享了我的开发文件夹,因此我可以将Mac用作使用Xamarin的IOS应用程序的构建主机。该项目在拥有dll所有权的mac上运行,因此我无法从其他任何地方对该dll进行更改。只需在Mac上停止该应用程序即可将所有权归还给我,这又允许再次完全访问。我希望此后。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.