Procedura: selezionare i file da compilare
Quando si compila un progetto che contiene numerosi file, è possibile elencarli separatamente nel file di progetto oppure utilizzare caratteri jolly per includerli tutti in una directory o in un insieme annidato di directory.
Definizione degli input
Gli elementi rappresentano gli input per una compilazione.Per ulteriori informazioni sugli elementi, vedere Elementi MSBuild.
Per includere i file per una compilazione, è necessario inserirli in un elenco di elementi nel file di progetto di MSBuild.È possibile aggiungere più file agli elenchi di elementi includendoli singolarmente oppure in blocco utilizzando i caratteri jolly.
Per dichiarare gli elementi individualmente
Utilizzare attributi Include simili a quelli riportati di seguito:
<CSFile Include="form1.cs"/>
- oppure -
<VBFile Include="form1.vb"/>
[!NOTA]
Se gli elementi in una raccolta di elementi non si trovano nella stessa directory del file di progetto, è necessario specificare il percorso completo o relativo dell' elemento.Ad esempio: Include="..\..\form2.cs".
Per dichiarare più elementi
Utilizzare attributi Include simili a quelli riportati di seguito:
<CSFile Include="form1.cs;form2.cs"/>
- oppure -
<VBFile Include="form1.vb;form2.vb"/>
Specifica degli input tramite caratteri jolly
I caratteri jolly possono inoltre essere utilizzati per includere in modo ricorsivo come input per una compilazione tutti i file, o solo alcuni di essi, presenti nelle sottodirectory.Per ulteriori informazioni sui caratteri jolly, vedere Elementi MSBuild.
Negli esempi riportati di seguito è illustrato un progetto che contiene file grafici nelle directory e sottodirectory indicate, con il file di progetto situato nella directory Project:
Project\Images\BestJpgs
Project\Images\ImgJpgs
Project\Images\ImgJpgs\Img1
Per includere tutti i file con estensione jpg presenti nella directory Images e nelle relative sottodirectory
Utilizzare il seguente attributo Include:
Include="Images\**\*.jpg"
Per includere tutti i file con estensione jpg il cui nome inizia con "img"
Utilizzare il seguente attributo Include:
Include="Images\**\img*.jpg"
Per includere tutti i file presenti nelle directory il cui nome termina in "jpgs"
Utilizzare uno degli attributi Include seguenti:
Include="Images\**\*jpgs\*.*"
- oppure -
Include="Images\**\*jpgs\*"
Passaggio degli elementi a un'attività
In un file di progetto è possibile inserire la notazione @() nelle attività per specificare come input per una compilazione un intero elenco di elementi.Tale notazione può essere utilizzata sia che i file vengano elencati separatamente, sia che si utilizzino i caratteri jolly.
Per utilizzare come input tutti i file Visual C# o Visual Basic
Utilizzare attributi Include simili a quelli riportati di seguito:
<CSC Sources="@(CSFile)">...</CSC>
- oppure -
<VBC Sources="@(VBFile)">...</VBC>
[!NOTA]
Per specificare gli input per una compilazione, è necessario utilizzare caratteri jolly con gli elementi. Non è consentito ricorrere all'attributo Sources in attività di MSBuild quali Csc o Vbc.L'esempio riportato di seguito non è considerato valido in un file di progetto:
<CSC Sources="*.cs">...</CSC>
Esempio
Nell'esempio di codice riportato di seguito viene illustrato un progetto in cui tutti i file di input vengono inclusi separatamente.
<Project DefaultTargets="Compile"
xmlns="https://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>
Nell'esempio di codice riportato di seguito viene utilizzato un carattere jolly per includere tutti i file con estensione cs.
<Project DefaultTargets="Compile"
xmlns="https://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>
Vedere anche
Attività
Procedura: escludere file dalla compilazione