-1

我正在使用 Visual Studio 2008 编写一个新包,该包只需调用一个 powershell 脚本来在数据库中加载一个 csv 文件。

我面临的问题是,当我创建“执行进程任务”时出现错误:0xc0029151,因为 powershell exe 在驱动器 C: 中,而我的 powershell 脚本在驱动器 D: 中。

如果我将 powershell 二进制文件复制粘贴到 D: 驱动器中,则一切正常。

这很奇怪,因为我有另一个 SSIS 执行相同的任务并且这个运行良好。

注意:看起来我需要设置“cd / D”设置来更改驱动器...

4

1 回答 1

0

首先,0xc0029151并不奇怪,当然也不是新的错误。这DTS_E_EXECPROCTASK_PROCESSEXITCODEEXCEEDS意味着进程退出代码与预期不同。换句话说,脚本本身可能不起作用,或者 powershell 调用不正确。

如果脚本没问题,那么尝试从 cmd 运行整个命令(即 powershell.exe,以您的脚本位置作为参数 - 我假设这是您在任务中运行它的方式)。

如果它有效,那么可能还有另一个原因。Execute Process Task 具有 WorkingDirectory 参数,但它不是为您的 .ps1 设置的,而是为 powershell.exe 设置的(因为这是您在任务中运行的内容),而您的脚本可能仍为其设置不同的目录。以防万一添加Set-Location您的脚本,看看会发生什么。

于 2013-09-24T16:24:09.567 回答