首页 > 解决方案 > 无法从 Visual Studio 项目中删除文件

问题描述

每当我尝试从我的 VS2015 C++ 项目中删除(甚至排除)任何文件时,我都会收到以下消息:

无法删除文件“...”。最可能的原因是该文件受源代码控制,此时无法删除。

尝试搜索此错误消息在任何地方都没有结果 - 我是唯一一个得到它的人吗?

我使用perforce,并且所有文件都被签出,所以VS应该对版本控制一无所知。

我能找到的唯一解决方案是手动从 vcxproj 文件中删除文件,这非常繁琐。

更新:问题似乎出在 Perforce 插件上。禁用它可以让我再次删除文件。这很奇怪,因为我从未为这个特定项目配置它。我也尝试将源代码控制切换为无,但每次我重新启动 VS 时它都会重新设置。

标签: visual-studiovisual-studio-2015

解决方案


我刚刚在使用 Visual Studio 2017 时遇到了这个问题。我做了一些非常广泛的故障排除,并找到了一种解决方法:

  1. 打开您看到此问题的解决方案/项目。
  2. 打开与 perforce 库的连接——即使您的解决方案不应该由 Perforce 管理——使用此选项:File / Open Connection to a Perforce Depot...
  3. 您应该会在“输出”选项卡下看到一个警告对话框或一条警告行,上面Perforce Source Control写着类似"Solution is not under your client's root folder". 如果您也没有看到,您可能应该将整个解决方案移动到不在您的客户端规范中的位置(如果可能),或者从您的 perforce 客户端规范中排除整个解决方案文件夹。这样,P4VS 不应该自动将该解决方案中的文件添加到 Perforce。
  4. 导航:

    Tools / Options / Source Control / Perforce - General

    ...并取消选中此选项以抑制步骤 3 中令人讨厌的警告对话框,否则每次打开该解决方案时都会出现该对话框:

    Warn if solution is outside workspace root

现在,您应该能够在没有 P4VS 干扰的情况下再次删除文件。(公平警告:这种解决方法可能有我不知道的其他副作用,但到目前为止它对我有用。)


推荐阅读