vcxproj.filters-Dateien

Die Filterdatei (*.vcxproj.filters) ist eine XML-Datei im MSBuild-Format, die sich im Stammprojektordner befindet. Es gibt an, welche Dateitypen in Projektmappen-Explorer in welchen logischen Ordner verschoben werden. In der folgenden Abbildung befinden sich die .cpp Dateien unter dem Knoten "Quelldateien ". die .h Dateien befinden sich unter dem Knoten "Headerdateien ", und .ico.rc Dateien befinden sich unter "Ressourcendateien". Diese Platzierung wird durch die Filterdatei gesteuert.

Screenshot of the Logical folders view in Solution Explorer.

Der Projektmappen-Explorer wird mit Aufrufen für die folgenden Knoten angezeigt: Headerdateien (die Dateien wie MFCApplication1.h), Ressourcendateien (die Dateien wie MFCApplication1.ico enthalten) und Quelldateien (die Dateien wie MFCApplication1.cpp enthalten).

Erstellen einer benutzerdefinierten Filterdatei

Visual Studio erstellt diese Datei automatisch. Bei Desktopanwendungen sind die vordefinierten logischen Ordner (Filter): Quelldateien, Headerdateien und Ressourcendateien. Andere Projekttypen wie UWP verfügen möglicherweise über einen anderen Satz von Standardordnern. Visual Studio weist jedem Ordner automatisch bekannte Dateitypen zu. Wenn Sie einen Filter mit einem benutzerdefinierten Namen oder einem Filter erstellen möchten, der benutzerdefinierte Dateitypen enthält, können Sie eine eigene Filterdatei im Stammordner des Projekts oder unter einem vorhandenen Filter erstellen. (Verweise und externe Abhängigkeiten sind spezielle Ordner, die nicht an der Filterung teilnehmen.)

Beispiel

Das folgende Beispiel zeigt die Filterdatei für das zuvor gezeigte Beispiel. Sie hat eine flache Hierarchie; Mit anderen Worten, es gibt keine geschachtelten logischen Ordner. Der UniqueIdentifier -Knoten ist optional. Es ermöglicht Visual Studio-Automatisierungsschnittstellen, den Filter zu finden. Extensions ist ebenfalls optional. Wenn einem Projekt eine neue Datei hinzugefügt wird, wird sie dem obersten Filter mit einer übereinstimmenden Dateierweiterung hinzugefügt. Zum Hinzufügen einer Datei zu einem bestimmten Filter klicken Sie mit der rechten Maustaste auf den Filter, und wählen Sie "Neues Element hinzufügen" aus.

Die ItemGroup Knoten mit den ClInclude Knoten werden erstellt, wenn das Projekt zum ersten Mal gestartet wird. Wenn Sie ihre eigenen vcxproj-Dateien generieren, stellen Sie sicher, dass alle Projektelemente auch einen Eintrag in der Filterdatei haben. Werte in einem ClInclude Knoten setzen die Standardfilterung basierend auf Dateierweiterungen außer Kraft. Wenn Sie Visual Studio verwenden, um dem Projekt ein neues Element hinzuzufügen, fügt die IDE einen einzelnen Dateieintrag in der Filterdatei hinzu. Der Filter wird nicht automatisch neu zugewiesen, wenn Sie die Erweiterung der Datei ändern.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Filter Include="Source Files">
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
    </Filter>
    <Filter Include="Header Files">
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
    </Filter>
    <Filter Include="Resource Files">
      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
    </Filter>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="MFCApplication1.h">
      <Filter>Header Files</Filter>
    </ClInclude>
    <ClInclude Include="MFCApplication1Dlg.h">
      <Filter>Header Files</Filter>
    </ClInclude>
    <ClInclude Include="stdafx.h">
      <Filter>Header Files</Filter>
    </ClInclude>
    <ClInclude Include="targetver.h">
      <Filter>Header Files</Filter>
    </ClInclude>
    <ClInclude Include="Resource.h">
      <Filter>Header Files</Filter>
    </ClInclude>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="MFCApplication1.cpp">
      <Filter>Source Files</Filter>
    </ClCompile>
    <ClCompile Include="MFCApplication1Dlg.cpp">
      <Filter>Source Files</Filter>
    </ClCompile>
    <ClCompile Include="stdafx.cpp">
      <Filter>Source Files</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="MFCApplication1.rc">
      <Filter>Resource Files</Filter>
    </ResourceCompile>
  </ItemGroup>
  <ItemGroup>
    <None Include="res\MFCApplication1.rc2">
      <Filter>Resource Files</Filter>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Image Include="res\MFCApplication1.ico">
      <Filter>Resource Files</Filter>
    </Image>
  </ItemGroup>
</Project>

Um geschachtelte logische Ordner zu erstellen, deklarieren Sie alle Knoten in Filtern ItemGroup wie unten dargestellt. Jeder untergeordnete Knoten muss den vollständigen logischen Pfad zum obersten übergeordneten Element deklarieren. Im folgenden Beispiel muss eine leere ParentFilter Deklariert werden, da sie in späteren Knoten referenziert wird.

  <ItemGroup>
    <Filter Include="ParentFilter">
    </Filter>
    <Filter Include="ParentFilter\Source Files"> <!-- Full path to topmost parent.-->  
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> <!--  Optional-->
      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> <!-- Optional -->
    </Filter>
    <Filter Include="Header Files">
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
    </Filter>
  </ItemGroup>