【发布时间】: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