Eu respondi a uma pergunta semelhante, mas diferente em Como você inclui arquivos adicionais usando os pacotes de implantação da web VS2010? .
Em seu cenário, você está usando o evento pós-compilação, eu recomendaria descartar o evento pós-compilação e implementar suas ações usando seus próprios destinos MSBuild em vez do evento pós-compilação. Abaixo você encontrará o texto da outra resposta.
De: Como você inclui arquivos adicionais usando os pacotes de implantação da web VS2010?
Ótima pergunta. Acabei de postar uma entrada de blog muito detalhada sobre isso em Web Deployment Tool (MSDeploy): Build Package incluindo arquivos extras ou excluindo arquivos específicos .
Aqui está a sinopse. Depois de incluir os arquivos, mostrarei como excluí-los também.
Incluindo Arquivos Extra
Incluir arquivos extras no pacote é um pouco mais difícil, mas ainda não é nada demais se você estiver familiarizado com o MSBuild e, se não estiver, leia isto. Para fazer isso, precisamos nos conectar com a parte do processo que coleta os arquivos para empacotamento. O destino que precisamos estender é chamado CopyAllFilesToSingleFolder. Este destino tem uma propriedade de dependência, PipelinePreDeployCopyAllFilesToOneFolderDependsOn, que podemos acessar e injetar nosso próprio destino. Portanto, vamos criar um destino chamado CustomCollectFiles e injetá-lo no processo. Conseguimos isso com o seguinte (lembre-se depois da instrução import).
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
Isso adicionará nosso alvo ao processo, agora precisamos definir o próprio alvo. Vamos supor que você tenha uma pasta chamada Arquivos extras 1 nível acima do seu projeto da web. Você deseja incluir todos esses arquivos. Aqui está o destino CustomCollectFiles e discutiremos depois disso.
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\Extra Files\**\*" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>Extra Files\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
Aqui o que fiz foi criar o item _CustomFiles e no atributo Incluir disse a ele para pegar todos os arquivos daquela pasta e qualquer pasta abaixo dela. Então eu uso este item para preencher o item FilesForPackagingFromProject. Este é o item que o MSDeploy realmente usa para adicionar arquivos extras. Observe também que declarei o valor DestinationRelativePath dos metadados. Isso determinará o caminho relativo em que será colocado na embalagem. Eu usei a instrução Extra Files% (RecursiveDir)% (Filename)% (Extension) aqui. O que isso significa é colocá-lo no mesmo local relativo no pacote em que está na pasta Extra Files.
Excluindo arquivos
Se você abrir o arquivo de projeto de um aplicativo da Web criado com o VS 2010 na parte inferior, encontrará uma linha com.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
BTW, você pode abrir o arquivo de projeto dentro do VS. Clique com o botão direito do mouse no projeto e selecione Unload Project. Em seguida, clique com o botão direito do mouse no projeto descarregado e selecione Editar Projeto.
Essa declaração incluirá todas as metas e tarefas de que precisamos. A maioria de nossas personalizações devem ser posteriores a essa importação, se você não tiver certeza, coloque-as depois! Portanto, se você tiver arquivos para excluir, há um nome de item, ExcludeFromPackageFiles, que pode ser usado para isso. Por exemplo, digamos que você tenha um arquivo denominado Sample.Debug.js que está incluído em seu aplicativo da web, mas deseja que esse arquivo seja excluído dos pacotes criados. Você pode colocar o snippet abaixo após a declaração de importação.
<ItemGroup>
<ExcludeFromPackageFiles Include="Sample.Debug.xml">
<FromTarget>Project</FromTarget>
</ExcludeFromPackageFiles>
</ItemGroup>
Ao declarar o preenchimento deste item, os arquivos serão excluídos automaticamente. Observe o uso dos metadados FromTarget aqui. Não vou entrar nisso aqui, mas você deve saber sempre especificar isso.