TFS,无法签入解决方案,accordionlist.gif:进程无法访问该文件,因为它正被另一个进程使用

Posted

技术标签:

【中文标题】TFS,无法签入解决方案,accordionlist.gif:进程无法访问该文件,因为它正被另一个进程使用【英文标题】:TFS, unable to check-in solution, accordionlist.gif: The process cannot access the file because it is being used by another process 【发布时间】:2014-10-29 16:38:16 【问题描述】:

我必须将我的解决方案添加到 TFS,在 Visual Studio 2013 中,当我单击团队资源管理器窗口中的签入按钮时,我收到以下错误消息:

C:\Projects\2013\MyCompany.MySolution\MyProject\adminpages\images\someimage.gif:该进程无法访问该文件,因为它正被另一个进程使用

显然,我使用 Process Explorer 和 LockHunter 检查了该文件是否正在被另一个进程使用,但没有找到任何东西。我很好奇为什么这些文件没有在任何地方使用。

知道它可能是什么吗?由于这个愚蠢的错误,我无法签入 TFS 的解决方案。

谢谢。

【问题讨论】:

这通常意味着文件在应用程序中打开。有时这可能是另一个应用程序(例如 Word 和 Excel 在编辑文件时保持文件打开),但通常它可以是 Visual Studio 本身。首先要尝试退出并重新启动 Visual Studio,或者如果失败,请重新启动您的 PC,以确保任何打开文件的进程都被终止。 (我知道你看不到 LockHunter 中保存的文件句柄,但这并不能证明什么) 做到了。没有应用程序正在运行,没有应用程序使用该文件。重新启动,重新启动......没有任何帮助。没有应用程序使用该文件,没有进程使用该文件。该文件什么都不是,甚至没有在任何地方使用。我实际上可以毫无问题地删除该文件。问题是我必须进行解决方案签入,而我不能。不只是那个文件,还有其他的,随机的;(( 能否关闭解决方案,然后从待定更改或源代码管理资源管理器中签入? 我也有同样的问题,通常是我的 Global.asax 文件。 【参考方案1】:

我也遇到了这个问题并尝试了一些方法,例如重新启动 VS 甚至我的机器,但唯一有效的解决方案(更像是变通方法)是使用另一个 Visual Studio(例如 2012)签入。

【讨论】:

【参考方案2】:

有时,VS 可能会根据它在您的解决方案/项目中看到的内容不同意您所签入的内容。我在创建新项目并在 Visual Studio 下移动文件时不时看到这种情况(即不使用 VS 内部的界面)。

以下是我将如何纠正该问题:

保存您的项目并关闭 Visual Studio 2013。 打开“VS2013 的开发人员命令提示符”并 cd 到包含您的解决方案的文件夹。 发出以下命令:

tf add /recursive .
tf checkin /recursive .

然后,将您的原始来源复制到其他地方:

robocopy /MIR . C:\Temp\Original

然后,删除当前源并从 TFS 重新获取

cd ..\
rmdir /s /q <foldername>
tf get /force /recursive <foldername>

打开您的解决方案并确保一切正常。如有必要,使用您之前通过机器复制的“备份”来纠正您遇到的问题。

【讨论】:

以上是关于TFS,无法签入解决方案,accordionlist.gif:进程无法访问该文件,因为它正被另一个进程使用的主要内容,如果未能解决你的问题,请参考以下文章

TFS 签入错误 - 找不到文件

TFS 无法解决的冲突?

使用cmd进行tfs的签入

如何在 TFS 2010 中恢复(回滚)签入

c#大圣之路笔记——TFS解决离职人员文件签出遗留签入问题

TFS 2010 从门控签入中排除文件类型