用于 SVN 挂钩的 C# 控制台应用程序未获取命令行参数

C# console app for SVN hook not getting command line arguments

我编写了一个 C# 控制台应用程序用作 SVN 预提交挂钩。我正在使用 this to parse the launch parameters. It's running on VisualSVN, and according to the VisualSVN documentation:

Input parameter(s)

The command-line arguments passed to the hook program, in order, are:

  • Repository path
  • Commit transaction name

当 运行 通过挂钩时,我似乎没有获取传递给应用程序的参数。如果我从控制台 运行 应用程序,手动传递参数,它工作正常,但是当被 SVN 调用时, args 数组是空的,命令行解析器不接受任何东西。

我通过在 VisualSVN (C:\Scripts\pre-commit.exe) 的预提交挂钩 属性 中指定 exe 的绝对路径来添加它。这是 correct/do 我需要做任何特殊的事情来获取要传递给应用程序的参数吗?

看来pre-commit.exe 文件必须放在repo hooks 目录中。一旦我将它移到那里,它就会被正确的参数击中。我认为 Visual SVN 预提交挂钩对话框实际上创建了一个批处理文件,它在调用可执行文件时丢失了参数。

我可能还可以调整该包装器的行为以使其工作,但将可执行文件放入其中就可以了。