Wybieranie plików do kompilacji
Podczas kompilowania projektu zawierającego kilka plików można wyświetlić poszczególne pliki oddzielnie w pliku projektu lub użyć symboli wieloznacznych do uwzględnienia wszystkich plików w jednym katalogu lub zagnieżdżonego zestawu katalogów.
Określanie danych wejściowych
Elementy reprezentują dane wejściowe kompilacji. Aby uzyskać więcej informacji na temat elementów, zobacz Elementy.
Aby dołączyć pliki do kompilacji, muszą one być uwzględnione na liście elementów w pliku projektu MSBuild. Wiele plików można dodać do list elementów, dołączając pliki pojedynczo lub używając symboli wieloznacznych do dołączania wielu plików jednocześnie.
Aby zadeklarować elementy indywidualnie
Include
Użyj atrybutów podobnych do następujących:<CSFile Include="form1.cs"/>
or
<VBFile Include="form1.vb"/>
Uwaga
Jeśli elementy w kolekcji elementów nie znajdują się w tym samym katalogu co plik projektu, musisz określić pełną lub względną ścieżkę do elementu. Na przykład:
Include="..\..\form2.cs"
.
Aby zadeklarować wiele elementów
Include
Użyj atrybutów podobnych do następujących:<CSFile Include="form1.cs;form2.cs"/>
lub
<VBFile Include="form1.vb;form2.vb"/>
Określanie danych wejściowych z symbolami wieloznacznymi
Można również używać symboli wieloznacznych, aby rekursywnie dołączać wszystkie pliki lub tylko określone pliki z podkatalogów jako dane wejściowe dla kompilacji. Aby uzyskać więcej informacji na temat symboli wieloznacznych, zobacz Elementy
Poniższe przykłady są oparte na projekcie zawierającym pliki graficzne w następujących katalogach i podkatalogach z plikiem projektu znajdującym się w katalogu project :
Project\Images\BestJpgs
Project\Images\ImgJpgs
Project\Images\ImgJpgs\Img1
Aby uwzględnić wszystkie pliki jpg w katalogu Images i podkatalogach
Użyj następującego
Include
atrybutu:Include="Images\**\*.jpg"
Aby dołączyć wszystkie pliki jpg rozpoczynające się od img
Użyj następującego
Include
atrybutu:Include="Images\**\img*.jpg"
Aby uwzględnić wszystkie pliki w katalogach z nazwami kończącymi się na jpg
Użyj jednego z następujących
Include
atrybutów:Include="Images\**\*jpgs\*.*"
lub
Include="Images\**\*jpgs\*"
Przekazywanie elementów do zadania
W pliku projektu można użyć notacji @() w zadaniach, aby określić całą listę elementów jako dane wejściowe kompilacji. Możesz użyć tej notacji niezależnie od tego, czy wyświetlasz listę wszystkich plików oddzielnie, czy też używasz symboli wieloznacznych.
Aby użyć wszystkich plików Visual C# lub Visual Basic jako danych wejściowych
Include
Użyj atrybutów podobnych do następujących:<CSC Sources="@(CSFile)">...</CSC>
or
<VBC Sources="@(VBFile)">...</VBC>
Uwaga
Aby określić dane wejściowe dla kompilacji, należy użyć symboli wieloznacznych z elementami; Nie można określić danych wejściowych przy użyciu atrybutu Sources
w zadaniach programu MSBuild, takich jak Csc lub Vbc. Poniższy przykład nie jest prawidłowy w pliku projektu:
<CSC Sources="*.cs">...</CSC>
Przykład 1
Poniższy przykład kodu przedstawia projekt, który zawiera oddzielnie wszystkie pliki wejściowe.
<Project DefaultTargets="Compile"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<Builtdir>built</Builtdir>
</PropertyGroup>
<ItemGroup>
<CSFile Include="Form1.cs"/>
<CSFile Include="AssemblyInfo.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>
Przykład 2
Poniższy przykład kodu używa symbolu wieloznakowego do uwzględnienia wszystkich plików cs .
<Project DefaultTargets="Compile"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<builtdir>built</builtdir>
</PropertyGroup>
<ItemGroup>
<CSFile Include="*.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>
Powiązana zawartość
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla