Visual Studio:如何从源代码管理中排除整个目录?

时间:2010-03-02 15:38:27

标签: visual-studio version-control perforce

我有一个Visual Studio 2008项目,其中包含在预构建步骤中生成代码的文件。这些文件都不应包含在源代码管理中。我无法预测将会有多少文件,或者它们的确切名称。 生成的文件通过通配符指令包含在Visual Studio项目文件中:

  <ItemGroup>
    <Content Include="CodeGen\*.xaml"/>
  </ItemGroup>

Visual Studio将所有生成的文件标记为“源代码控制新手”,因此当您不小心时,您将检查整个文件。通过“文件&gt;”排除源控件中的文件。 &gt;源代码管理&gt;&gt;从源代码管理中排除选择“,唯一改变的是csproj.vspscc文件;在其中,每个文件有一行,还有一个计数器:

"NUMBER_OF_EXCLUDED_FILES" = "2"
"EXCLUDED_FILE0" = "CodeGen\\File1.xaml"
"EXCLUDED_FILE1" = "CodeGen\\File2.xaml"

我正在寻找的是一种从源代码控制中排除所有代码生成文件的方法,这样无论文件夹的内容是什么,Visual Studio都不会将任何文件识别为“新”或“已更改”。

源控制是Perforce。

1 个答案:

答案 0 :(得分:4)

您可以在Perforce中修改工作区规范,以自动忽略某些文件或目录。假设您的项目名称为Foo,并且您的工作区名为Bar,则可以

//depot/Foo/... //Bar/...
-//depot/Foo/CodeGen/... //Bar/CodeGen/...

负号表示该行指定要忽略的文件/目录,而三重句点表示此路径下的所有文件和目录。

我假设这会导致这些文件被忽略,即使Visual Studio尝试添加它们也是如此。我没有使用Perforce / Visual Studio集成,所以我不确定。