Eu tenho um projeto Visual Studio 2008 C # / .net 3.5 com uma tarefa de pós-compilação para compactar o conteúdo. No entanto, estou descobrindo que também estou obtendo os arquivos .pdb (depuração) e .xml (documentação) dos assemblies referenciados em meu diretório de saída (e ZIP).
Por exemplo, se MyProject.csproj fizer referência a YourAssembly.dll e houver os arquivos YourAssembly.xml e YourAssembly.pdb no mesmo diretório da DLL, eles aparecerão em meu diretório de saída (e ZIP).
Posso excluir * .pdb ao compactar, mas não posso excluir os arquivos * .xml, pois tenho arquivos de implantação com a mesma extensão.
Existe uma maneira de impedir que o projeto copie os arquivos PDB e XML do assembly referenciado?
fonte
Eu queria ser capaz de adicionar e remover assemblies referenciados em meu aplicativo principal, evitando a necessidade de manter quais arquivos eu precisava excluir ou excluir.
Eu cavei
Microsoft.Common.targets
procurando por algo que funcionasse e encontrei aAllowedReferenceRelatedFileExtensions
propriedade. O padrão é.pdb; .xml
então eu o defini explicitamente em meu arquivo de projeto. O problema é que você precisa de algo (espaços em branco não são suficientes), caso contrário, o padrão ainda será usado.fonte
Você pode adicionar um comando de evento Post Build semelhante a
del "$(TargetDir)YourAssembly*.xml", "$(TargetDir)YourAssembly*.pdb"
fonte
Esta é uma pergunta bastante antiga, mas como não há resposta sobre como desativar a geração de arquivos PDB e XML por meio da interface do usuário, imaginei que ela deveria estar aqui para ser completa.
No Visual Studio 2013: nas propriedades do projeto, na guia compilar, desmarque "Gerar arquivo de documentação XML", clique em "Opções avançadas de compilação" abaixo e altere "Gerar informações de depuração" para "Nenhum" e isso resolverá o problema.
fonte
pdb
exml
arquivos.Minha resposta pode ser trivial agora, mas gostaria de compartilhar o script BAT que uso para excluir os arquivos xml, se houver uma dll correspondente para ele. É útil se você deseja apenas limpar a pasta de saída e tem outros arquivos xml que não deseja remover.
Uso:
Levei uma hora para terminar esse trabalho simples (graças ao material de "expansão atrasada") com todo tipo de busca aqui e ali. Espero que ajude outros novatos BAT como eu.
fonte
Não tive muita sorte com as outras respostas, finalmente descobri como fazer isso na minha implementação usando o comando "Excluir" embutido , aparentemente há uma maneira específica de implementar curingas , é um pouco matizada , aqui está tudo que você precisa ser colocado em seu "CSPROJ" ( TargetDir é uma variável embutida, incluída automaticamente) sob a tag "Projeto":
Também tive problemas com a geração de várias pastas específicas de um idioma. Se você também tiver esse problema, também poderá remover as pastas não utilizadas de um idioma específico. Eu escolhi acionar isso apenas no tipo de construção "Release":
fonte
Se você deseja apenas excluir os arquivos XML (por exemplo, uma versão de depuração), pode fazer algo assim:
Basicamente, cada extensão (delimitada por um ponto e vírgula) listada será excluída.
fonte