我有一个脚本任务,当我在本地运行它时,它获取 winscp 可执行文件路径的文件路径没有问题当我在作业中运行时它说脚本错误,然后在“路径中的非法字符”错误之前。 我查看了日志中的路径,路径在“...”文件“...”周围带有双引号,所以到底是从哪里得到的。我的包参数没有双引号。路径设置为“C:\Program Files (x86)\WinSCP\WinSCP.exe”。
我在每行代码之间放置了一个 processLocation 用于调试,然后将这个字符串输出到日志,日志说路径中有非法字符。我看到的代码没有任何问题。忽略我的调试代码,代码在第二行被轰炸,所以设置 FileInfo(... 所以这很奇怪。所以它实际上没有获取 FileInfo 变量,所以如果它是一个权限问题,那么抛出一个权限错误而不是非法字符,无论如何,当我在 visual studio 中单步执行代码时,如何调试不可能的字符??
private WinSCPSession GetLatestWinSCPSession()
{
processLocation = "GetLatestWinSCPSession";
var winSCPpath = (string)Dts.Variables["$Package::SFTPWinSCPFullName"].Value;
processLocation = "GetLatestWinSCPSession winscp exe - " + winSCPpath;
var path = (new FileInfo(winSCPpath)).DirectoryName;
processLocation = "GetLatestWinSCPSession winscp dir - " + path;
path = Path.Combine(path, "WinSCPnet.dll");
processLocation = "GetLatestWinSCPSession winscp dll - " + path;
return WinSCPSession.Create(path);
}