Für diejenigen, die Probleme mit der Antwort von Chris haben , ist dies die Lösung für Visual Studio 2012 und höher:
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
Wie Chris in seiner Antwort erwähnt hat, wird Visual Studio diesen Abschnitt nicht berühren <Target>
, selbst wenn Sie manuell mit dem Zielverzeichnis herumspielen (Hinzufügen / Entfernen von Dateien).
Bitte beachten Sie, dass Sie sollten ein Unterverzeichnis enthalten , in dem sich die Dateien befinden (im Fall oben, es ist images
). Visual Studio / MSBuild platziert diese Dateien in demselben Verzeichnis innerhalb der Projektstruktur. Wenn Sie kein Unterverzeichnis verwenden, werden die Dateien im Stammverzeichnis der Projektstruktur abgelegt.
Für eine kurze Erklärung der Platzhalter:
**
bedeutet alles rekursiv (Dateien, Unterverzeichnisse und Dateien innerhalb dieser)
*.ext
Enthält alle Dateien mit der Erweiterung ext
im Verzeichnis der obersten Ebene, jedoch keine Unterverzeichnisse
- Zum Beispiel
*.ext
könnte sein *.png
, *.js
usw. Jede wird Dateierweiterung arbeiten
**\*.ext
Enthält alle Dateien mit der Erweiterung ext
aus dem Verzeichnis der obersten Ebene und alle Unterverzeichnisse.
- Siehe die Antwort von Wie verwende ich Nant / Ant-Namensmuster? für eine vollständigere Erklärung mit Beispielen.
Beachten Sie zum Abschluss, dass es einen Unterschied zwischen der Verwendung <Target>
und der Nichtverwendung gibt.
Mit dem <Target>
Ansatz, Visual Studio wird nicht zeigen , die Dateien innerhalb des Solution Explorer.
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
Der nicht <Target>
Ansatz wird Visual Studio anweisen, zeigt die Dateien innerhalb des Solution Explorer. Der Nachteil bei diesem ist, dass jede Manipulation der automatischen Verzeichnisse dazu führt, dass Visual Studio den Platzhaltereintrag überschreibt. Es sollte auch beachtet werden , dass der Ansatz unten wird nur die Lösung Explorer aktualisieren , auf die Lösung / Projekt in VS. Öffnung Selbst die Symbolleistenschaltfläche "Aktualisieren" des Projektmappen-Explorers reicht nicht aus.
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>