Pour ceux qui rencontrent des problèmes avec la réponse de Chris, voici la solution pour Visual Studio 2012 et plus récent:
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
Comme Chris l'a mentionné dans sa réponse - Visual Studio n'y touchera pas<Target>
section, même si vous manipulez manuellement (ajout / suppression de fichiers) avec le répertoire cible.
S'il vous plaît noter que vous devez inclure un sous - répertoire où se trouvent les fichiers (dans le cas ci - dessus, il est images
). Visual Studio / MSBuild placera ces fichiers dans le même répertoire dans la structure du projet. Si vous n'utilisez pas de sous-répertoire, les fichiers seront placés à la racine de la structure du projet.
Pour une explication rapide des caractères génériques:
**
signifie tout récursivement (fichiers, sous-répertoires et fichiers dans ceux-ci)
*.ext
inclura tous les fichiers avec l'extension ext
dans le répertoire de niveau supérieur, mais pas les sous-répertoires
- Par exemple,
*.ext
pourrait être *.png
,*.js
etc. Toute extension de fichier ne fonctionnera
**\*.ext
inclura tous les fichiers avec l'extension ext
du répertoire de niveau supérieur et tous les sous-répertoires.
- Voir la réponse dans Comment utiliser les modèles de dénomination Nant / Ant?pour une explication plus complète avec des exemples.
Pour terminer, veuillez noter qu'il existe une différence entre l'utiliser <Target>
et ne pas l'utiliser.
Avec l' <Target>
approche, Visual Studio n'affichera pas les fichiers dans l'Explorateur de solutions.
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
La non - <Target>
approche va donner des instructions Visual Studio pour afficher les fichiers dans la solution Explorer. L'inconvénient de celui-ci est que toute manipulation des répertoires automatiques entraînera le remplacement de l'entrée générique par Visual Studio. Il convient également de noter que l'approche ci-dessous ne mettra à jour l'Explorateur de solutions qu'à l'ouverture de la solution / projet dans VS. Même le bouton "Actualiser" de la barre d'outils de l'Explorateur de solutions ne le fera pas.
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>