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, .txt
es handelt sich um ein None
Element, anstatt Content
es 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 Condition
Attribut verwenden:
<Target … Condition=" '$(Configuration)' == 'Release' ">
Dieses Condition
Attribut kann sowohl auf das <Target>
Element als auch auf Aufgabenelemente wie angewendet werden <Copy>
.