在SSIS(2015)中使用C#运行带有日期参数的命令行



我需要在带有日期参数的Windows服务器上使用SSIS(2015(中的C#运行命令行

命令行示例:

D: \TEST>dotnet TEST.dll--从DateTime"2018-11-21"--到DateTime"2018-11-22">

你能帮我写剧本吗?

感谢

感谢大家的帮助。

我找到了问题的答案:

  1. 无法使用SSIS执行进程任务,因为它适用于EXE或BAT

  2. 不想/不能将我的DotNet DLL更改为EXE,因为它非常有限,并且该项目包括许多其他不属于此问题的因素(开发由其他团队完成(

  3. 这是C#的答案-它有效!:(

    public void Main(({string FromDate=日期。变量["User::FromDate"]。价值ToString((;string ToDate=日期。变量["User::ToDate"]。价值ToString((;string TEST_Path=Dts。变量["$Package::TEST_Path"]。价值ToString((;string TEST_ExePath=Dts。变量["$Package::TEST_ExePath"]。价值ToString((;

    var strCmdText = @"c:program filesdotnetdotnet.exe";
    
    var parameters = TEST_ExePath.ToString() + " --fromDateTime " + FromDate.ToString() + " --toDateTime " + ToDate.ToString();
    System.Diagnostics.Process p = new System.Diagnostics.Process();
    p.StartInfo = new System.Diagnostics.ProcessStartInfo(strCmdText, parameters);
    p.StartInfo.WorkingDirectory = TEST_Path;
    p.StartInfo.UseShellExecute = false;
    bool fireAgain = false;
    try
    {
    p.Start();
    }
    catch(Exception e)
    {
    Dts.Events.FireError(0, "Script Task Example", "Exception encountered: " + e.ToString(), String.Empty, 0);
    }
    
    p.WaitForExit();
    
    Dts.Events.FireInformation(0, "Script Task Example", "Exit code = " + p.ExitCode.ToString(), String.Empty, 0, ref fireAgain);
    
    Dts.TaskResult = (int)ScriptResults.Success;
    }
    

最新更新