【问题标题】:Could not copy "obj\Debug\Program.exe" to "bin\Debug\Program.exe". Exceeded retry count of 10. Failed无法将“obj\Debug\Program.exe”复制到“bin\Debug\Program.exe”。重试次数超过 10。失败
【发布时间】:2017-04-24 00:01:07
【问题描述】:

我正在尝试从 Internet 下载文件。我有一个 if 语句和 else 子句触发文件下载。这是我的代码:

if (!FileDownload)
{

}
else
{
    using (WebClient wc = new WebClient())
    {
        wc.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
        wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
        wc.DownloadFileAsync(new Uri("https://www.google.com/Program.exe"),Application.StartupPath);
        MessageBox.Show("Yes");
    }

当我尝试运行我的程序时,出现以下错误:

错误 1:

Could not copy "obj\Debug\Program.exe" to "bin\Debug\Program.exe". Exceeded retry count of 10. Failed.

错误 2:

Unable to copy file "obj\Debug\Program.exe" to "bin\Debug\Program.exe". Could not find file 'obj\Debug\Program.exe'.

还有大约 10 个带有相同信息的警告:

   Could not copy "obj\Debug\Program.exe" to "bin\Debug\Program.exe". Beginning retry 1 in 1000ms. Could not find file 'obj\Debug\Program.exe'. 

但是,一旦我删除 if 语句中的 else 子句,程序就会执行而不会出现任何错误。 else 子句中的下载代码显然是导致问题的原因,但我不知道为什么。我在不同的事件中以相同的形式使用了相同的代码,并且它运行良好。任何帮助表示赞赏。

我已经试过了:

  • 关闭并重新打开 Visual Studio
  • 从 bin 文件夹中删除所有文件,然后重新构建。
  • 检查文件是否被进程资源管理器锁定
  • 以管理员身份手动运行 VS
  • 删除 bin 和 debug 文件夹
  • 重新启动计算机并将项目移动到其他文件夹

【问题讨论】:

  • 您需要确保该文件未被使用。
  • 关闭并重新打开视觉工作室
  • 关闭项目并重新打开它。再试一次。
  • @EJoshuaS 是的,我做到了,文件没有被锁定:/
  • 您需要关闭应用程序,右键单击 VS 并选择以管理员身份运行,这将解决问题。MSDN 网站上还有一些关于如何在启动时以管理员身份运行的文档。 .

标签: c# download compiler-errors runtime-error webclient


【解决方案1】:

只需做一件事以管理员权限打开 Visual Studio,如下图所示。

并解决问题 关闭应用程序后,请执行以下技巧以退出所有进程,以免出现此类问题。

试试这个我想你会得到你的解决方案

主窗体MDI窗体的Closing事件中添加Application.Exit(),如下所示

Private Sub frmMain_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) 处理 Me.FormClosing 应用程序.Exit() 结束子

【讨论】:

    【解决方案2】:

    我自己解决了这个问题。在尝试了许多对其他人有效但对我无效的不同解决方案之后,我尝试查看在尝试执行程序的同时运行的不同进程。问题是 Avast。我关闭了 Avast Anti Virus,它立即解决了问题。由于某种原因,Avast 甚至在每次删除程序时都没有显示任何消息。我的程序有一个existing problem - 因为一些 AV (2/72) 将我的程序检测为病毒。它与我的代码结构有关。感谢大家的回答 - 它应该对其他有类似错误的人有用。

    【讨论】:

      【解决方案3】:

      我确定您没有从正确的 bin 文件夹中删除文件。打开TaskManager 查找任何名为Program.exe 的程序。验证进程从Open file Location 运行的位置。

      杀死Program.exe 并再次尝试重建。如果它有效,那么您的 bin 输出路径将映射到此位置。

      刚刚仔细查看了错误消息: 无法将文件“obj\Debug\Program.exe”复制到“bin\Debug\Program.exe”。 找不到文件'obj\Debug\Program.exe'

      您是否配置了任何 PostBuild 步骤来复制文件?如果是,请删除它。

      同时编辑您的 .csproj 文件并搜索“obj\Debug”,如果有任何匹配的内容,请删除并重试。

      更高级的故障排除:

      使用process monitor 并过滤VisualStudio 的进程和路径。看下面的截图

      再次构建您的项目并调查分析日志为什么它试图复制 Program.exe。

      添加/删除更多过滤器,看看为什么复制 Program.exe 很麻烦。同时查找Result 列中的任何错误。

      【讨论】:

      • 我已经尝试过了,但没有成功。问题是 'obj\debug\' 文件夹没有构建 Program.exe。所以它不能被复制到 bin 文件夹中。我不确定为什么它不起作用。
      • 这不是问题..我一直有这个问题,并发现以管理员身份运行它可以解决问题..
      • 我的程序已经需要以管理员身份运行(我已经编辑了清单文件)并且我还以管理员身份运行了 Visual Studio,但仍然出现错误。
      • 打开任务管理器并停止该应用程序/Visual Studio 的所有实例,以管理员身份重新打开,确保在 VS 的标题中显示 Microsoft Visual Studio(Administrator) 并在运行时遇到实际问题重新编译应用程序这在调试器之外那么也许你有一些内存泄漏/没有正确释放资源..
      • @MethodMan 感谢您的建议,我这样做了,但仍然显示相同的错误:/
      猜你喜欢
      • 2021-12-10
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      相关资源
      最近更新 更多