当我尝试连续两次构建项目时,我收到以下错误
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
更新
另一个具有完全相同问题的线程,但是从几年前开始!!
Destroy process-less console windows left by Visual Studio debug sessions
更新
我在本地复制了文件,但没有用。所以我创建了一个新项目,然后将所有代码复制到新项目中,现在它正在工作(文件存储在本地)
答案 0 :(得分:1)
检查您的防病毒程序是否正在使用它。
或者使用Process Explorer找到字符串 - “iFileUploader.exe”并查看谁在使用它。您可以轻松获取句柄并将其关闭。
答案 1 :(得分:0)
有几点:
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(自定义)
- >取消选中执行时扫描程序