3

从 VS 2015 迁移到 VS 2019 后,解决方案资源管理器的过滤器不再起作用。为什么?

在 VS 2015 中,为了在解决方案资源管理器中对文件进行分类而不创建物理文件夹,我.filters为每个项目都有文件。过滤器在解决方案资源管理器中按排序顺序显示相同类型的文件(基于每个文件夹:标题、源代码、调试......等)。现在,它不起作用。如果我为每个项目添加->现有,并为所选项目选择相应的过滤器,我看不出有什么区别(即使在卸载/加载、关闭/打开 VS 等之后)

我浏览了过滤器文件并确保它们没有任何问题,并且所有项目的文件实际上都是列表。任何人都可以帮忙吗?

与 2015 年相比:

在此处输入图像描述

与 2019 年相比:

在此处输入图像描述

4

4 回答 4

4
  1. 从项目目录中删除 .vs 文件夹。
  2. 将现有过滤器文件复制到项目目录。
  3. 打开项目。现在过滤器应该可用。
于 2020-01-27T06:53:04.813 回答
1

我遇到了这样的问题,并且正在使用 .filters 文件来了解什么是错误的。所以过了一段时间我发现文件包含标签应该根据文件夹排序!例如,如果你有这样的结构:

/folder
    /sub1
    /sub2

您的文件应如下所示:

<ClInclude Include="folder1\file1.h">
  <Filter>folder</Filter>
</ClInclude>
<ClInclude Include="folder1\sub1\file2.h">
  <Filter>folder\sub1</Filter>
</ClInclude>
<ClInclude Include="folder1\sub2\file3.h">
  <Filter>folder\sub2</Filter>
</ClInclude>

在我的情况下,排序不正确,在 Visual Studio IDE 中,我得到了项目文件的平面列表。我有这样的事情:

<ClInclude Include="folder1\sub1\file2.h">
  <Filter>folder\sub1</Filter>
</ClInclude>
<ClInclude Include="folder1\sub2\file3.h">
  <Filter>folder\sub2</Filter>
</ClInclude>
<!-- This subfolder was not at the place -->
<ClInclude Include="folder1\file1.h">
  <Filter>folder</Filter>
</ClInclude>
于 2020-01-17T11:18:56.723 回答
0

遇到同样的问题,尝试添加一个新过滤器并将一些文件移动到该新过滤器。在保存“.filter”文件的同时关闭VS,然后重新打开VS,它会检索旧的过滤器。现在您可以整理您的文件。

于 2022-01-24T12:58:30.293 回答
0

我的 .filters 文件中有一个在合并期间引入的错误。我比较了之前和之后,发现了一个不再有结束标签的标签。添加结束标签后,我能够打开项目并返回过滤器。

因此,如果 xml 结构中存在错误,过滤器将停止工作。

于 2021-04-16T12:29:04.023 回答