我编写了一个C#控制台应用程序,用作SVN预提交挂钩。我使用this来解析启动参数。它在VisualSVN上运行,并且根据VisualSVN documentation:
输入参数
按顺序传递给钩子程序的命令行参数是:
- 存储库路径
- 提交交易名称
我似乎没有在通过钩子运行时接收传递给应用程序的参数。如果我从控制台运行应用程序,手动传递参数,它可以正常工作,但是当SVN调用时,args
数组为空,命令行解析器不会拾取任何内容。
我通过在VisualSVN(C:\Scripts\pre-commit.exe
)中的预提交钩子属性中指定exe的绝对路径来添加它。这是正确的/我是否需要做一些特殊的事情才能将参数传递给应用程序?
答案 0 :(得分:1)
似乎必须将pre-commit.exe文件放在repo hooks目录中。一旦我把它移到那里,它就会被正确的参数击中。我认为 Visual SVN预提交钩子对话框实际上创建了一个批处理文件,它在调用可执行文件时丢失了参数。
我可能还可以调整该包装器的行为以使其工作,但删除可执行文件就可以了。