181

在评估 Visual Studio 2010 Beta 2 时,我看到在转换后的目录中,我的vcproj文件变成了 vcxproj文件。每个项目旁边还有vcxproj.filter文件,这些文件似乎包含文件夹结构的描述(\Source Files、\Header Files 等)。

您认为这些过滤器文件应该按用户保留,还是应该在整个开发组中共享并签入 SCC?

我目前的想法是检查它们,但我想知道是否有任何理由不这样做,或者也许是我一定要检查它们的充分理由。

明显的好处是,如果我正在查看其他人的机器,文件夹结构将匹配,但也许他们想在逻辑上重新组织事物?

4

4 回答 4

115

我们故意拉出 .filter。当我们翻译成 .vcxproj MSBuild 格式时,文件信息来自 .vcproj。一个原因正是您所指出的,过滤器纯粹是一种逻辑视图,不同的团队成员可能想要不同的视图。另一个是有时会设置构建以检查项目文件的时间戳,并在它发生更改时触发重建 - 因为这可能意味着要构建不同的源文件或不同的设置等。我没有回想一下我们是否真的以这种方式发布了构建触发,但我们的想法是我们不想仅仅因为过滤器更改而触发重建,因为它们不会影响构建。

于 2010-05-15T22:29:31.863 回答
64

以前版本的 Visual Studio(至少 6.0 和 2008 版)将该信息存储在它们自己的项目文件(分别为 .dsp 和 .vcproj 文件)中,这当然可以很好地添加到 SCC。

我想不出任何理由不在 SCC 中包含此 .filter 文件

于 2009-12-02T17:02:31.007 回答
6

我刚刚发现,如果您使用 Git,则可以将 .filter 文件标记为要合并的联合,以使其更简单。只需添加以下行:

*.vcxproj.filters merge=union

到您的 .gitattributes 文件。

有关更多详细信息,请参阅使用 .gitattributes 避免合并冲突

于 2017-01-10T01:20:27.037 回答
5

CMake如果您使用(或类似的构建工具)生成文件,如,*.sln等,则不应添加它,因为这些文件可能包含您的项目文件夹的完整路径和其他仅您计算机的特定文件夹的路径。*.vcxproj*.vcxproj.filters

于 2018-11-17T19:09:38.413 回答