Para aquellos que tengan problemas para usar la respuesta de Chris , esta es la solución para Visual Studio 2012 y versiones posteriores:
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
Como Chris mencionó en su respuesta, Visual Studio no tocará esto<Target>
sección, incluso si manipula manualmente (agregando / eliminando archivos) con el directorio de destino.
Tenga en cuenta que debe incluir un subdirectorio donde se encuentran los archivos (en el caso anterior, es images
). Visual Studio / MSBuild colocará esos archivos en el mismo directorio dentro de la estructura del proyecto. Si no usa un subdirectorio, los archivos se colocarán en la raíz de la estructura del proyecto.
Para una explicación rápida de los comodines:
**
significa todo de forma recursiva (archivos, subdirectorios y archivos dentro de esos)
*.ext
incluirá todos los archivos con extensión ext
dentro del directorio de nivel superior, pero no los subdirectorios
- Por ejemplo,
*.ext
podría ser *.png
, *.js
etc. Cualquier extensión de archivo funcionará
**\*.ext
incluirá todos los archivos con extensión ext
del directorio de nivel superior y todos los subdirectorios.
- Vea la respuesta de ¿Cómo uso los patrones de nomenclatura Nant / Ant? para una explicación más completa con ejemplos.
Para completar, tenga en cuenta que hay una diferencia entre usar <Target>
y no usarlo.
Con el <Target>
enfoque, Visual Studio no mostrará los archivos dentro del Explorador de soluciones.
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
El no <Target>
enfoque indicará a Visual Studio que muestre los archivos dentro del Explorador de soluciones. El inconveniente de este es que cualquier manipulación de los directorios automáticos hará que Visual Studio anule la entrada comodín. También debe tenerse en cuenta que el enfoque a continuación solo actualizará el Explorador de soluciones al abrir la Solución / Proyecto en VS. Incluso el botón de la barra de herramientas "actualizar" del Explorador de soluciones no lo hará.
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>