如何修复SSIS“文件/进程不在路径中”警告?

时间:2011-07-11 12:23:57

标签: ssis

SSIS提供了许多解决数据获取和集成问题的任务,但它缺少的一项任务是通过HTTP下载文件的“HTTP任务”。

要解决此问题,我安装了Wget,并使用执行包任务从SSIS运行它。

Wget位于我的系统路径上,因此我可以在任何目录中运行程序时从命令提示符输入“wget”。但SSIS抱怨“文件/进程'wget'不在路径上”:

SSIS warns that 'File/Process "wget" is not in path'.

我已将流程属性RerquireFullFileName设置为False以阻止此投诉导致错误:

RequireFullFileName is False so that the package executes successfully.

除了在开始时发出警告外,程序包还按预期运行。它调用wget并下载我告诉它的文件。但是,如何阻止SSIS抱怨wget不在路径上?

编辑:按照Siva的建议,将Execute Process任务的DelayValidation属性设置为True并不能解决问题。它只是阻止SSIS在设计时抱怨。通过延迟验证,在运行时,我在调试输出窗口中看到了这一点:

SSIS package "Extract.dtsx" starting.
Warning: 0xC0029154 at Download Locations Dump, Execute Process Task: File/Process "wget" is not in path.
SSIS package "Extract.dtsx" finished: Success.

3 个答案:

答案 0 :(得分:4)

发生警告是因为打包在设计时试图验证可执行文件的位置。您可以通过将Execute Process task的属性延迟验证 False 更改为 True ,将此验证推迟到运行时间。

分步流程:

  1. 在SSIS包中,我已将Execute Process Task配置为使用工具 Wget 。参考屏幕截图# 1

  2. 屏幕截图# 2 警告消息类似于问题中显示的屏幕截图。

  3. 右键点击执行流程任务和选定的属性,如屏幕截图# 3 所示。

  4. 在属性窗口中,将DelayValidation属性值从False更改为True。

  5. 屏幕截图# 5 表示不再显示警告。

  6. 修改

    要完全取消警告,即使在运行时,您也可以执行以下操作:

    1. 创建一个变量来存储 wget.exe 的完整路径。使用wget.exe的完整路径填充变量。您的方案中的值可能会有所不同。请参阅屏幕截图# 6

    2. 双击“执行进程”任务。在任务的“表达式”部分,单击省略号按钮。请参阅屏幕截图# 7

    3. 属性表达式编辑器上,将可执行文件属性值设置为新创建的变量@[USer::WgetPath]。请参阅屏幕截图# 8

    4. 希望有所帮助。

      屏幕截图#1:

      1

      屏幕截图#2:

      2

      屏幕截图#3:

      3

      屏幕截图#4:

      4

      屏幕截图#5:

      5

      屏幕截图#6:

      6

      屏幕截图#7:

      7

      屏幕截图#8:

      8

答案 1 :(得分:0)

转到“执行流程任务”的“属性”,然后将RequireFullFileName属性设置为false。您可以通过以下方式访问属性:单击任务,然后按F4键;或者右键单击任务,然后从上下文菜单中单击属性。

此解决方案已在带有SSDT的VS 2017中经过测试。您将看到一个黄色标志警告,但程序包将运行该命令。

答案 2 :(得分:0)

请注意,Visual Studio在启动时会加载PATH环境变量。这意味着,如果您打开项目,安装一些东西(向PATH添加一个新值),然后尝试使用刚刚安装的可执行文件,即使它确实存在于目录中,它也会给您“文件/进程不在路径中”警告。路径。只需关闭VS,重新加载项目,警告就会消失。