【问题标题】:Why do vcxproj.filters files exist?为什么 vcxproj.filters 文件存在?
【发布时间】:2011-08-04 13:00:57
【问题描述】:

不应该将 vcxproj.filters 嵌入到 .vcxproj 中吗?就目前而言,我必须将其签入源代码管理,以便其他人可以看到解决方案中的文件夹结构。

【问题讨论】:

  • 对于 C#,等效的项目信息似乎不会导致此问题/不确定性。我想知道这是否是因为(如下面对答案的评论中所述)过滤器信息对文件系统来说基本上是多余的,因此在 C# 中他们没有存储它的第二个副本。

标签: visual-studio visual-studio-2010


【解决方案1】:

根据 Dan Moseley 在this question 中所说,他们还希望将树结构与构建特定信息分开,因为更改树结构会导致对项目文件进行更新,而这反过来会触发重建。通过将项目的逻辑视图移动到单独的文件,可以避免这种情况。

【讨论】:

  • IMO 他们应该刚刚废弃了 IDE 中的过滤器。已经有一个逻辑树结构,它被称为“文件系统”。目前有很多重复——每个文件都必须添加到文件系统、构建脚本 (vcxproj)、过滤器 (vcxproj.filters)、源代码控制,也许还有其他地方。它违反了 DRY 原则。
【解决方案2】:

实际上,它们已嵌入到以前版本的 Visual Studio 中。扩展名仍然是 .vcproj,过滤器存储在项目文件中。但是,自 2010 年起,决定将 .filter 信息提取到单独的文件中。

现在真正由设计团队决定是否添加此源代码控制。如果您希望所有开发人员具有相同的结构(出于沟通原因),最好将它们签入。如果您想让每个开发人员使用自己的逻辑视图,那就不要。

【讨论】:

    【解决方案3】:

    vcxproj 文件包含用于 msbuild 环境的命令。所以它包含应该构建的文件以及编译器如何构建/链接等源文件的参数。

    因此,开发团队决定解决方案资源管理器中文件的“视图”不应包含在 msbuild 文件中,而应包含在另一个文件中。

    这样做是为了将构建设置与您拥有的视图分开。

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 2021-01-07
      • 1970-01-01
      • 2012-06-20
      • 2021-06-05
      • 1970-01-01
      相关资源
      最近更新 更多