Ancora un'altra risposta ...
Nel mio caso avevo un progetto Visual Studio 2017 rivolto sia a .Net Standard 1.3 che .Net Framework 2.0. Questo è stato specificato nel file .csproj in questo modo:
<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>
Avevo anche una riga di comando dell'evento post-build come questa:
copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
In altre parole, stavo cercando di copiare il .Net Framework .dll prodotto dalla build in una posizione alternativa.
Questo non funzionava con questo errore quando ho eseguito una ricostruzione:
MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.
Dopo molta frustrazione ho finalmente stabilito che quello che stava succedendo era che Rebuild aveva cancellato tutti i file di output, quindi ha fatto la build per .Net Standard 1.3, quindi ho provato a eseguire la riga di comando dell'evento post-build, che non è riuscita perché il file da copiare non è stato ancora costruito.
Quindi la soluzione è stata quella di cambiare l'ordine di costruzione, cioè compilare prima per .Net Framework 2.0, poi per .Net Standard 1.3.
<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>
Questo ora funziona, con il piccolo problema tecnico che la riga di comando dell'evento post-build viene eseguita due volte, quindi il file viene copiato due volte.