Ainda outra resposta ...
No meu caso, eu tinha um projeto do Visual Studio 2017 voltado para .Net Standard 1.3 e .Net Framework 2.0. Isso foi especificado no arquivo .csproj assim:
<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>
Eu também tinha uma linha de comando de evento pós-compilação como esta:
copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
Em outras palavras, eu estava tentando copiar o .Net Framework .dll produzido pelo build para um local alternativo.
Isso estava falhando com este erro quando fiz uma reconstrução:
MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.
Depois de muita frustração, finalmente concluí que o que estava acontecendo era que o Rebuild excluía todos os arquivos de saída, depois fazia a compilação para .Net Standard 1.3 e, em seguida, tentei executar a linha de comando do evento pós-compilação, que falhou porque o arquivo a ser copiado ainda não foi construído.
Portanto, a solução foi alterar a ordem de construção, ou seja, construir primeiro para .Net Framework 2.0 e depois para .Net Standard 1.3.
<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>
Isso agora funciona, com a pequena falha de que a linha de comando do evento pós-compilação está sendo executada duas vezes, portanto, o arquivo é copiado duas vezes.