Visual Studio - 无法多次构建一个简单的项目

时间:2011-11-03 13:14:44

标签: c# visual-studio-2010

当我尝试连续两次构建项目时,我收到以下错误

Error 2 Unable to copy file "obj\x86\Release\iFileUploader.exe" 
to "bin\Release\iFileUploader.exe". The process cannot access the 
file 'bin\Release\iFileUploader.exe' because it is being used by another process.

如果我关闭Visual Studio并重新打开它,我可以再次编译它,但只能编译一次。

我的项目托管在Windows网络共享上。服务器在Windows 7计算机上运行Windows 2008 R2和Im,并尝试设置每个人对共享和文件夹权限的完全控制权,但无济于事。

我甚至运行了Unlocker程序并检查了Windows Share& Storage Manager查看是否有任何东西正在使用它,什么都没有!在发生这种情况时我无法删除文件,直到我关闭VS。

我在Visual Studio中缺少一个设置吗?!


更新

已删除所有防病毒/反垃圾邮件,禁用防火墙..所以零安全。

已禁用“启用Visual Studio托管过程”

Visual Studio是一些没有释放句柄的colprupt

enter image description here

enter image description here


更新

另一个具有完全相同问题的线程,但是从几年前开始!!

Destroy process-less console windows left by Visual Studio debug sessions


更新

我在本地复制了文件,但没有用。所以我创建了一个新项目,然后将所有代码复制到新项目中,现在它正在工作(文件存储在本地)

5 个答案:

答案 0 :(得分:1)

检查您的防病毒程序是否正在使用它。

或者使用Process Explorer找到字符串 - “iFileUploader.exe”并查看谁在使用它。您可以轻松获取句柄并将其关闭。

答案 1 :(得分:0)

有几点:

  • 检查您是否已在Windows任务管理器中运行进程iFileUploader.exe
  • 检查是否有人没有运行可以使用iFileUploader.exe
  • 的项目

答案 2 :(得分:0)

确保您已创建StreamReader或StreamWriter实例的位置已关闭该流。

例如,我将在应用程序级别创建一个StreamReader / StreamWriter实例并将其设置为null

Class SomeClass
{
  public StreamWriter streamwrtFileToCreate = null;
  public FileStream fstreamFileStream = null
  public SomeMethod(string FileName, string FilePath)
  {   
    FileStream fstreamFileStream = new FileStream(@FileName + @FilePath, FileMode.Create);
    streamwrtFileToCreate = new StreamWriter(fstreamUpdateRpt);
    streamwrtUpdateRpt.AutoFlush = true;
  }
}

如果您发布创建FileStream实例时使用的代码的确切示例,它也会有所帮助

答案 3 :(得分:0)

Christian即使你在使用(){}中有你的Stream也不要声明StreamReader的新变量,例如不要这样做

using(StreamReader streamReade = new StreamReader)
{
  ..... // if you do you will run into that stream being locked
}
//Declare the StreamReader variable out side of the using and then within the using do something like this.

StreamReader streamReader = null
using(streamReader = new StreamReader()
{

}

答案 4 :(得分:0)

我在VS 2012 Windows 7中遇到过这个问题。 根本原因是Avast Antivirus。

  

修复是在需要在C ++控制台上工作时禁用Avast   应用

(或)

  

- >转到Avast设置

     

- > Active Protection

     

- > File System Shield(自定义)

     

- >取消选中执行时扫描程序