无法将“obj \ Debug \ Program.exe”复制到“bin \ Debug \ Program.exe”。超过重试次数10.失败

时间:2016-12-08 16:48:03

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

我正在尝试从互联网上下载文件。我有一个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文件夹中删除所有文件,然后重建。
  • 检查文件是否已使用Process Explorer锁定
  • 以管理员身份手动运行VS
  • 删除bin和调试文件夹
  • 重新启动计算机并将项目移动到其他文件夹

3 个答案:

答案 0 :(得分:2)

只需做一件事打开Visual Studio作为管理员权限,如下图所示。 enter image description here

并解决问题 在关闭应用程序之后,请执行以下操作以退出所有进程,这样您就不会遇到其他问题。

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

主要表单 MDI 表单的结束事件中添加 Application.Exit(),如下所示

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

答案 1 :(得分:0)

我确定您没有从正确的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和路径的过程。见下面的截图

enter image description here

再次构建项目并调查分析日志,以便它尝试复制Program.exe。

enter image description here

添加/删除更多过滤器以查看复制Program.exe的原因。另请查找Result列中的任何错误。

答案 2 :(得分:0)

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