1

我正在尝试svn info从 T4 文本模板中的代码获取本地 svn HEAD 修订号执行命令。这是一段获取此命令结果的代码:

private string GetSvnInfo()
{
    var psi = new ProcessStartInfo(fileName: "cmd", arguments: "/c svn info -r HEAD")
    {
        RedirectStandardOutput = true,
        UseShellExecute = false,
        CreateNoWindow = true,
        WorkingDirectory = Host.ResolvePath(""),
    };
    var process = Process.Start(psi);

    var res = process.StandardOutput.ReadToEnd();
    process.WaitForExit(100);

    return res;
}

当我运行此模板时,它工作正常。但是当它在构建期间自动执行时,该命令将被忽略。

我也尝试在那里开始svn.exe而不是作为参数cmd传递info -r HEAD,但后来我在 Process.Start() 上得到了 Win32Exception。这似乎是与权限相关的问题,但首先,我不确定,其次,在编译时 T4 文本模板转换期间我无法找到与权限相关的任何内容。

而且我还尝试了不同的应用程序,例如sqlcmd- 结果是一样的。

所以问题是 - 在编译时 T4 文本模板转换期间,我将如何让应用程序从 cmd 执行?任何帮助将不胜感激。

我在管理员权限下在 VS 11 中编译我的解决方案。

4

0 回答 0