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

Posted

技术标签:

【中文标题】无法复制文件 - 访问路径被拒绝【英文标题】:Unable to copy file - access to the path is denied 【发布时间】:2011-10-31 02:28:21 【问题描述】:

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

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

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

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

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

【问题讨论】:

这是在网络共享上吗?您对您的机器有管理权限吗?这个问题可能更适合 serverfault 或超级用户。 不,我使用的是我自己的机器,我有管理权限 我通过手动将文件从一个位置复制到所需位置解决了这个问题,可能问题与带有只读文件的 MSBUILD 有关 【参考方案1】:

我有同样的问题,为了解决这个问题,我检查/做了几件事

什么不起作用

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

最后什么起作用了

只需将 Fred Morrison 给出的命令粘贴到“包管理器控制台”中即可:

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

注意:只是观察在这种情况下重新启动 Visual Studio 可能不起作用,但重新启动系统可以,因为停止进程“VBCSCompiler”是解决方案,因此我们可以采用任何一种方式。

【讨论】:

【参考方案2】:

我在这里尝试了一切,以某种方式删除我项目中的所有 bin 和 obj 文件夹都不起作用。从其他进程释放文件夹什么也没做。重新启动什么也没做。通过在主文件夹上取消选中它来从每个文件中删除只读并没有帮助。

每个依赖项最终都将自己添加到问题中。直接在依赖项的文件夹中构建工作,所以我很困惑。我打算重复这个问题,但我发现了一些有用的东西。

你知道什么有效吗?

dotnet clean

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

清除“bin\debug”中所有引用的库,点击“清理解决方案”后,在解决方案资源管理器中右键单击解决方案。

然后重建!!

【讨论】:

【参考方案6】:

我多次遇到这个问题,我找到的解决方案是删除调试文件夹,然后重建您的解决方案/项目。为我工作!

【讨论】:

【参考方案7】:

确保在路径名后附加文件名 (path\fileName.extension)。我花了一个多小时没有注意到这一点。

【讨论】:

【参考方案8】:

这可能是最初从所有文件和文件夹都受写保护的源代码控制(TFS 等)加载源代码的奇怪副产品。转到***目录并检查属性,您会发现 只读属性 已选中。取消选中该选项,系统会询问您是否要将顶层下的所有目录设置为可写。这应该可以解决它。

【讨论】:

【参考方案9】:

我尝试注销并重新登录,它对我有用。希望这对其他人有帮助。

【讨论】:

【参考方案10】:

就我而言,我使用 Visual Studio Community 7.1.5 for Mac 将一个项目从 Windows 移植到 OSX。诀窍是在项目首选项上禁用Use MSBuild engine (recommended for this type of project)option:

【讨论】:

【参考方案11】:

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

手动将最近签入的 .dll 版本从另一个项目 bin 文件夹复制到生成错误的项目中的 bin 文件夹,从而解决了问题。

我们的解决方案的长期解决方案是为解决方案中的所有项目使用相同的确切 .dll,而不是在多个项目中使用相同的 .dll 文件,但我不想解决这个问题,所以快速-dirty 解决方案是复制较新的版本。

【讨论】:

【参考方案12】:

在尝试了几乎所有操作之后,只需将项目复制粘贴到不同的位置并构建项目......它就可以工作了。

【讨论】:

【参考方案13】:

安装 Windows 更新 KB5003637 后,我的问题开始发生。我的 VS2019 项目之前运行良好,但在安装 Windows 更新后出现此错误。卸载它,项目再次运行。

【讨论】:

【参考方案14】:

对于那些在 VS 2019 中仍然面临这个问题的人 1- 打开终端 2-写'dotnet clean'

【讨论】:

【参考方案15】:

如果有人在尝试其他任何事情之前想要一个更简单的解决方案。

只需重新启动您的电脑。 打开 Visual Studio,再次尝试构建。

【讨论】:

【参考方案16】:

简单的解决方案:

只需升级以下包

Microsoft.CodeDom.Providers.DotNetCompilerPlatform v1.0.5 to v1.0.7

它会解决问题。

【讨论】:

以上是关于无法复制文件 - 访问路径被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

无法将文件 obj\Debug 复制到 bin\Debug 对路径 bin\Debug\ 的访问被拒绝

无法复制 SQL Server 文件,访问被拒绝

对路径“binMySql.Data.xml”的访问被拒绝的解决方法

将文件从一个服务器路径复制到另一个显示访问被拒绝

未经授权的访问异常 - 在C#中将文件复制到其他目录时访问被拒绝的路径

无法创建临时文件夹错误5拒绝访问