Otra respuesta más ...
En mi caso, tuve un proyecto de Visual Studio 2017 dirigido tanto a .Net Standard 1.3 como a .Net Framework 2.0. Esto se especificó en el archivo .csproj así:
<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>
También tuve una línea de comando de evento posterior a la compilación como esta:
copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
En otras palabras, estaba tratando de copiar el .Net Framework .dll producido por la compilación en una ubicación alternativa.
Esto estaba fallando con este error cuando hice una reconstrucción:
MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.
Después de mucha frustración, finalmente determiné que lo que estaba sucediendo era que Rebuild eliminó todos los archivos de salida, luego hice la compilación para .Net Standard 1.3, luego traté de ejecutar la línea de comando del evento posterior a la compilación, que falló porque el archivo que se iba a copiar aún no estaba construido.
Entonces, la solución fue cambiar el orden de construcción, es decir, compilar primero para .Net Framework 2.0 y luego para .Net Standard 1.3.
<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>
Esto ahora funciona, con el problema menor de que la línea de comando del evento posterior a la compilación se ejecuta dos veces, por lo que el archivo se copia dos veces.