Noch eine Antwort ...
In meinem Fall hatte ich ein Visual Studio 2017-Projekt, das sowohl auf .Net Standard 1.3 als auch auf .Net Framework 2.0 abzielte. Dies wurde in der .csproj-Datei wie folgt angegeben:
<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>
Ich hatte auch eine Post-Build-Ereignisbefehlszeile wie diese:
copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
Mit anderen Worten, ich habe versucht, die vom Build erzeugte .NET Framework-DLL an einen alternativen Speicherort zu kopieren.
Dies ist mit diesem Fehler fehlgeschlagen, als ich einen Rebuild durchgeführt habe:
MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.
Nach langem Frust stellte ich schließlich fest, dass Rebuild alle Ausgabedateien löschte, dann den Build für .Net Standard 1.3 durchführte und dann versuchte, die Ereignisbefehlszeile nach dem Build auszuführen, was fehlschlug, weil die Datei kopiert werden musste wurde noch nicht gebaut.
Die Lösung bestand also darin, die Erstellungsreihenfolge zu ändern, dh zuerst für .Net Framework 2.0 und dann für .Net Standard 1.3 zu erstellen.
<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>
Dies funktioniert jetzt mit dem kleinen Fehler, dass die Befehlszeile für Ereignisse nach dem Build zweimal ausgeführt wird, sodass die Datei zweimal kopiert wird.