Jeszcze inna odpowiedź ...
W moim przypadku miałem projekt Visual Studio 2017 przeznaczony zarówno dla .Net Standard 1.3, jak i .Net Framework 2.0. Zostało to określone w pliku .csproj w następujący sposób:
<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>
Miałem również wiersz poleceń po kompilacji, taki jak ten:
copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
Innymi słowy, próbowałem skopiować plik .Net Framework .dll utworzony przez kompilację do alternatywnej lokalizacji.
To kończyło się niepowodzeniem z powodu tego błędu, gdy wykonałem przebudowę:
MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.
Po wielu frustracjach w końcu ustaliłem, że dzieje się tak, że Rebuild usunęło wszystkie pliki wyjściowe, a następnie wykonałem kompilację dla .Net Standard 1.3, a następnie spróbowałem uruchomić wiersz poleceń zdarzenia po kompilacji, co nie powiodło się, ponieważ plik do skopiowania nie został jeszcze zbudowany.
Rozwiązaniem była więc zmiana kolejności budowania, tj. Najpierw zbuduj dla .Net Framework 2.0, a potem dla .Net Standard 1.3.
<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>
Teraz to działa, z drobną usterką polegającą na tym, że wiersz poleceń zdarzenia po kompilacji jest uruchamiany dwukrotnie, więc plik jest kopiowany dwukrotnie.