无法从Visual Studio项目中删除文件

时间:2018-08-06 10:38:25

标签: visual-studio visual-studio-2015

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

  

文件'...'无法删除。最可能的原因是该文件受源代码控制,目前无法删除。

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

我使用perforce,并且所有文件都已检出,因此VS应该不了解版本控制。

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

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

2 个答案:

答案 0 :(得分:4)

我只是在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的干扰。 (警告:此替代方法可能会产生我不知道的其他副作用,但到目前为止对我有用。)

答案 1 :(得分:0)

对我没有任何帮助,所以我只是在文本编辑器中打开了项目文件,然后手动删除了有问题的文件。在某些时候,我的构建目标也发生了变化,因此发生这种情况的可能原因是我试图删除文件,而选择了与添加文件时不同的构建目标。