Ausschließen von Dateien aus dem Buildvorgang
Sie können in einer Projektdatei Platzhalter verwenden, um alle Dateien in einem Verzeichnis oder einer geschachtelten Gruppe von Verzeichnissen als Eingaben für einen Buildvorgang einzuschließen. Möglicherweise gibt es jedoch eine Datei im Verzeichnis oder ein Verzeichnis in einer geschachtelten Gruppe von Verzeichnissen, die nicht als Eingabe für einen Buildvorgang eingeschlossen werden sollen. Sie können diese Datei oder dieses Verzeichnis explizit aus der Liste der Eingaben ausschließen. Vielleicht gibt es auch eine Datei in einem Projekt, das Sie nur unter bestimmten Umständen miteinbeziehen wollen. Sie können die Bedingungen explizit deklarieren, unter denen eine Datei in einem Buildvorgang enthalten ist.
Ausschließen einer Datei oder eines Verzeichnisses aus den Eingaben für einen Buildvorgang
Elementlisten sind die Eingabedateien für einen Buildvorgang. Die Elemente, die Sie einschließen möchten, werden entweder einzeln oder als Gruppe mithilfe des Attributs Include
deklariert. Beispiel:
<CSFile Include="Form1.cs"/>
<CSFile Include ="File1.cs;File2.cs"/>
<CSFile Include="*.cs"/>
<JPGFile Include="Images\**\*.jpg"/>
Wenn Sie Platzhalter verwendet haben, um alle Dateien in einem Verzeichnis oder einer geschachtelten Gruppe von Verzeichnissen als Eingaben für einen Buildvorgang einzuschließen, gibt es möglicherweise eine oder mehrere Dateien im Verzeichnis oder ein Verzeichnis in einer geschachtelten Gruppe von Verzeichnissen, die Sie nicht einschließen möchten. So verwenden Sie das Attribut Exclude
zum Ausschließen eines Elements aus der Elementliste.
So schließen Sie alle CS- oder VB-Dateien außer Form2 ein
Ändern Sie eines der folgenden Attribute
Include
undExclude
:<CSFile Include="*.cs" Exclude="Form2.cs"/>
oder
<VBFile Include="*.vb" Exclude="Form2.vb"/>
So schließen Sie alle CS- oder VB-Dateien außer Form2 und Form3 ein
Ändern Sie eines der folgenden Attribute
Include
undExclude
:<CSFile Include="*.cs" Exclude="Form2.cs;Form3.cs"/>
oder
<VBFile Include="*.vb" Exclude="Form2.vb;Form3.vb"/>
So schließen Sie alle JPG-Dateien in Unterverzeichnisse des Verzeichnisses Images ein, außer den Dateien im Version2-Verzeichnis
Verwenden Sie die folgenden Attribute
Include
undExclude
:<JPGFile Include="Images\**\*.jpg" Exclude = "Images\**\Version2\*.jpg"/>
Hinweis
Sie müssen den Pfad für beide Attribute angeben. Wenn Sie einen absoluten Pfad zum Angeben von Dateispeicherorten im Attribut
Include
verwenden, müssen Sie auch einen absoluten Pfad im AttributExclude
verwenden. Verwenden Sie einen relativen Pfad im AttributInclude
, müssen Sie auch einen relativen Pfad im AttributExclude
verwenden.
Verwenden von Bedingungen zum Ausschließen einer Datei oder eines Verzeichnisses aus den Eingaben für einen Buildvorgang
Wenn es Elemente gibt, die Sie einschließen möchten, z.B. in einem Debugebuild, aber nicht in einem Releasebuild, können Sie das Element Condition
verwenden, um die Bedingungen anzugeben, unter denen Sie das Element einschließen möchten.
So schließen Sie die Formula.vb-Datei nur in Releasebuilds ein
Verwenden Sie Attribut
Condition
, das ähnlich des Folgenden ist:<Compile Include="Formula.vb" Condition=" '$(Configuration)' == 'Release' " />
Beispiel
Das folgende Codebeispiel erstellt ein Projekt mit allen CS-Dateien im Verzeichnis, außer Form2.cs.
<Project DefaultTargets="Compile"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<builtdir>built</builtdir>
</PropertyGroup>
<ItemGroup>
<CSFile Include="*.cs" Exclude="Form2.cs"/>
<Reference Include="System.dll"/>
<Reference Include="System.Data.dll"/>
<Reference Include="System.Drawing.dll"/>
<Reference Include="System.Windows.Forms.dll"/>
<Reference Include="System.XML.dll"/>
</ItemGroup>
<Target Name="PreBuild">
<Exec Command="if not exist $(builtdir) md $(builtdir)"/>
</Target>
<Target Name="Compile" DependsOnTargets="PreBuild">
<Csc Sources="@(CSFile)"
References="@(Reference)"
OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
TargetType="exe" />
</Target>
</Project>
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für