Existem várias maneiras de atingir seus objetivos, dependendo de quais são suas necessidades.
A abordagem mais fácil é definir os itens de metadados ( CopyToOutputDirectory/ CopyToPublishDirectory) condicionalmente (assumindo .txtser um Noneitem em vez de Content, se não funcionar, tente <Content>):
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<None Update="foo.txt" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
Se mais controle for necessário, a abordagem mais versátil é adicionar destinos personalizados que se conectam ao processo de compilação no arquivo csproj:
<Target Name="CopyCustomContent" AfterTargets="AfterBuild">
<Copy SourceFiles="foo.txt" DestinationFolder="$(OutDir)" />
</Target>
<Target Name="CopyCustomContentOnPublish" AfterTargets="Publish">
<Copy SourceFiles="foo.txt" DestinationFolder="$(PublishDir)" />
</Target>
Isso copia um arquivo para os respectivos diretórios. Para mais opções para a <Copy>tarefa, consulte sua documentação . Para limitar isso a certas configurações, você pode usar um Conditionatributo:
<Target … Condition=" '$(Configuration)' == 'Release' ">
Este Conditionatributo pode ser aplicado tanto no <Target>elemento quanto em elementos de tarefa como <Copy>.