Logfiles mit MSBuild 14



  • Guten Morgen,

    ich habe eine Solution mit MFC- und C#- Projekten, die ich mit MSBuild baue:

    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vsvars32.bat"
    CD .
    SET HOUR=%time:~0,2%
    SET dtStamp9=%date:~6,4%%date:~3,2%%date:~0,2%_0%time:~1,1%%time:~3,2%%time:~6,2%
    SET dtStamp24=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%
    
    IF "%HOUR:~0,1%" == " " (SET buildtime=%dtStamp9%) ELSE (SET buildtime=%dtStamp24%)
    
    SET logdir=.\buildlog
    SET errorlog=%logdir%\%buildtime%_v140_error.log
    SET warninglog=%logdir%\%buildtime%_v140_warning.log
    
    "C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe" .\src\all.sln /target:Build /fl1 /fl2 /flp1:logfile=%warninglog%;warningsonly /flp2:logfile=%errorlog%;errorsonly /p:Configuration=Debug_v140 /p:Platform=Win32
    

    Das Verzeichnis für die Logfiles im Verzeichnis des Batch- Files ist vorhanden.

    Seit der Umstellung auf MSBuild 14 habe ich jetzt folgendes Problem:
    Die MFC- Projekte bauen weiterhin. Bei den C#- Projekten bekomme ich einen Fehler, weil er das Error- Logfile relativ zum entsprechenden Projekt sucht (und natürlich nicht findet). Über das Warnings- Log beschwert er sich komischerweise nicht.

    Wenn ich einen absoluten Pfad für die Logfiles benutze, kommt ein Fehler, dass das Logfile von einem anderen Prozess benutzt wird.

    Mit MSBuild 12 hat das noch problemlos funktioniert.

    Kennt dieses Problem vielleicht jemand und hat eine Lösung für mich?

    Vielen Dank!



  • Man darf einfach keine Umgebungsvariable "errorlog" nennen, wenn dieser Name neuerdings von MSBuild benutzt/ausgewertet wird... 🙄



  • MSBuild14 schrieb:

    Man darf einfach keine Umgebungsvariable "errorlog" nennen, wenn dieser Name neuerdings von MSBuild benutzt/ausgewertet wird... 🙄

    gibts kein lokales SET? Dann sollte man am besten einfach keine .bat-Dateien schreiben. Und wenns doch sein muss, alle lokalen Variablen prefixen.


Anmelden zum Antworten