none
Post-build event: Pfade auf unterschiedlichen Systemen RRS feed

  • Frage

  • Holla Community,

    wir haben für unser Projekt ein Post-build event erstellt, das eine Datei in den Ausgabeordner kopiert:

    copy $(ProjectDir)\MyProg.exe.config $(TargetDir)\Prog.exe.config

    Auf den Entwicklerrechnern funktioniert das. Wir haben aber einen TFS Buildrechner, auf dem die Pfade bereits mit einem anhängenden Backslash aufgelöst werden. Dadurch kann die config nicht kopiert werden und der Build schlägt fehl:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (3717): The command "copy D:\Project\Builds\1\Main\Client_CI\Sources\Client\\MyProg.exe.config D:\Project\Builds\1\Main\Client_CI\Binaries\\Prog.exe.config" exited with code 1

    Problem ist der doppelte Backslash vor Prog.exe.config.
    Da in den Post-build events keine Befehle, ähnlich dem Path.Combine existieren, weiß ich nicht, wie das Problem umgangen werden kann.

    Habt ihr eine Idee?

    TIA, Matze


    TIA, Matze

    Freitag, 17. Februar 2012 11:31

Antworten

  • Hi Jochen,

    danke für deine Antwort. Das Weglassen des Backslashs funktioniert auf einigen Clients nicht, da der Pfad nicht mit einem Backslash endet.

    Ich hab die Pfade jetzt in Anführungszeichen gesetzt. Damit funktioniert es (auch der doppelte Backslash wird akzeptiert).

    PS: ich weiß, dass man statt der ausgeschriebenen Namen Variablen verwendet soll. Es handelt sich aber hier um spezifische Dateien, dür die keine Variablen existieren.

    Gruß, Matze


    TIA, Matze

    Freitag, 17. Februar 2012 12:36

Alle Antworten

  • copy $(ProjectDir)\MyProg.exe.config $(TargetDir)\Prog.exe.config

    Warum lässt Du nicht einfach den Backslash weg? =>

    copy $(ProjectDir)MyProg.exe.config $(TargetDir)Prog.exe.config

    PS: Normalerweise verwendet man nicht den Namen direkt, sondern

    copy $(ProjectDir)$(TargetName)$(TargetExt).config
    $(TargetDir)$(TargetName)$(TargetExt).config

    Jochen Kalmbach (MVP VC++)
    Freitag, 17. Februar 2012 12:26
  • Hi Jochen,

    danke für deine Antwort. Das Weglassen des Backslashs funktioniert auf einigen Clients nicht, da der Pfad nicht mit einem Backslash endet.

    Ich hab die Pfade jetzt in Anführungszeichen gesetzt. Damit funktioniert es (auch der doppelte Backslash wird akzeptiert).

    PS: ich weiß, dass man statt der ausgeschriebenen Namen Variablen verwendet soll. Es handelt sich aber hier um spezifische Dateien, dür die keine Variablen existieren.

    Gruß, Matze


    TIA, Matze

    Freitag, 17. Februar 2012 12:36