我正在使用svncommit
MSBuild 社区任务项目中的任务。不幸的是,我有一大堆文件要提交,但由于以下错误而失败:
“SvnCommit”任务的命令行太长。超过 32000 个字符的命令行可能会失败。尝试通过将对“SvnCommit”的调用分解为多个调用来减少命令行的长度,每次调用的参数更少。
我尝试将参数指向Targets
父文件夹,但它似乎想要文件。有什么办法可以告诉它只提交文件夹中的所有待处理文件?
我正在使用svncommit
MSBuild 社区任务项目中的任务。不幸的是,我有一大堆文件要提交,但由于以下错误而失败:
“SvnCommit”任务的命令行太长。超过 32000 个字符的命令行可能会失败。尝试通过将对“SvnCommit”的调用分解为多个调用来减少命令行的长度,每次调用的参数更少。
我尝试将参数指向Targets
父文件夹,但它似乎想要文件。有什么办法可以告诉它只提交文件夹中的所有待处理文件?
实际上,提到的那个错误是 resgen.exe 特定的。在这种情况下,这仅仅是因为您正在使用的任务是按字面意思将参数传递给 .exe,而不是使用响应文件。Windows 不会接受超过 32KB 的进程参数。这就是交付 MSBuild 任务总是使用响应文件的原因。
(在提到的错误的情况下,他们使用的是不支持它们的 3.5 resgen,并试图通过使用文件的子集反复调用它来解决这个问题。不幸的是,数学是错误的。)
您需要要求修复任务以使用响应文件,或者缩短您正在使用的文件的路径,可能通过将它们移近磁盘根目录或使用“subst”。
丹(MSbuild 开发人员)