Encore une autre réponse ...
Dans mon cas, j'avais un projet Visual Studio 2017 ciblant à la fois .Net Standard 1.3 et .Net Framework 2.0. Cela a été spécifié dans le fichier .csproj comme ceci:
<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>
J'avais également une ligne de commande d'événement post-build comme celle-ci:
copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
En d'autres termes, j'essayais de copier le .Net Framework .dll produit par la construction vers un autre emplacement.
Cela a échoué avec cette erreur lorsque j'ai fait une reconstruction:
MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.
Après beaucoup de frustration, j'ai finalement déterminé que ce qui se passait était que Rebuild supprimait tous les fichiers de sortie, puis faisait la construction pour .Net Standard 1.3, puis essayait d'exécuter la ligne de commande de l'événement post-construction, qui a échoué car le fichier à copier n'était pas encore construit.
La solution était donc de changer l'ordre de construction, c'est-à-dire de construire d'abord pour .Net Framework 2.0, puis pour .Net Standard 1.3.
<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>
Cela fonctionne maintenant, avec le petit problème que la ligne de commande de l'événement post-construction est exécutée deux fois, donc le fichier est copié deux fois.