2012-03-29 16 views
2

Ich verwende den Task svncommit aus dem MSBuild Community Tasks-Projekt. Ich habe eine ziemlich große Gruppe von Dateien bekommt zu begehen & es mit diesem Fehler fehlschlägt leider:svncommit msbuild-Task schlägt fehl, weil die Befehlszeile zu lang ist

The command-line for the "SvnCommit" task is too long. Command-lines longer than 32000 characters are likely to fail. Try reducing the length of the command-line by breaking down the call to "SvnCommit" into multiple calls with fewer parameters per call.

Ich habe gerade versucht, zeige die Targets Parameter auf dem übergeordneten Ordner, aber es scheint, um die Dateien zu wollen. Gibt es eine Möglichkeit, ich kann es nur sagen, alle ausstehenden Dateien in einem Ordner zu committen?

Antwort

2

Eigentlich war der erwähnte Fehler resgen.exe spezifisch. In diesem Fall liegt es einfach daran, dass die von Ihnen verwendete Aufgabe Parameter an die EXE-Datei übergibt, anstatt eine Antwortdatei zu verwenden. Windows akzeptiert nicht mehr als 32 KB Parameter für einen Prozess. Aus diesem Grund verwenden die Versand-MSBuild-Aufgaben immer Antwortdateien.

(Im Fall des genannten Fehlers verwendeten sie die 3.5 resgen, die sie nicht unterstützten, und versuchten, dies zu umgehen, indem sie wiederholt mit einer Teilmenge der Dateien aufriefen. Leider war die Mathematik falsch.)

Sie müssen entweder nach der zu reparierenden Aufgabe fragen, um Antwortdateien zu verwenden, oder die Pfade der Dateien verkürzen, indem Sie sie näher an den Stamm der Festplatte verschieben, oder indem Sie sie verwenden "subst".

Dan (MSbuild Entwickler)