Es gibt einige Möglichkeiten, um Ihre Ziele zu erreichen, je nachdem, welche Bedürfnisse Sie haben.
Der einfachste Ansatz besteht darin, die Metadaten ( CopyToOutputDirectory/ CopyToPublishDirectory) -Elemente bedingt festzulegen (vorausgesetzt, .txtes handelt sich um ein NoneElement, anstatt Contentes zu versuchen, wenn es nicht funktioniert <Content>):
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<None Update="foo.txt" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
Wenn mehr Kontrolle erforderlich ist, besteht der vielseitigste Ansatz darin, benutzerdefinierte Ziele hinzuzufügen, die in den Erstellungsprozess in der csproj-Datei eingebunden sind:
<Target Name="CopyCustomContent" AfterTargets="AfterBuild">
<Copy SourceFiles="foo.txt" DestinationFolder="$(OutDir)" />
</Target>
<Target Name="CopyCustomContentOnPublish" AfterTargets="Publish">
<Copy SourceFiles="foo.txt" DestinationFolder="$(PublishDir)" />
</Target>
Dadurch wird eine Datei in die jeweiligen Verzeichnisse kopiert. Weitere Optionen für die <Copy>Aufgabe finden Sie in der Dokumentation . Um dies auf bestimmte Konfigurationen zu beschränken, können Sie ein ConditionAttribut verwenden:
<Target … Condition=" '$(Configuration)' == 'Release' ">
Dieses ConditionAttribut kann sowohl auf das <Target>Element als auch auf Aufgabenelemente wie angewendet werden <Copy>.