gpt4 book ai didi

c# - 在 C# 中使用相对路径的 SSIS 远程执行

转载 作者:太空宇宙 更新时间:2023-11-03 14:18:41 26 4
gpt4 key购买 nike

我正在尝试执行一个远程(驱动程序包),而该远程(驱动程序包)又会执行一个 SSIS 包。

我正在为此代码和下面的代码使用 using Microsoft.SqlServer.Dts.Runtime 命名空间。

var app = new Application();
var pkg = app.LoadPackage(pkgLocation, null, true);
pkg.ImportConfigurationFile(configfilePath);

var pkgResults = pkg.Execute();
if (pkgResults == DTSExecResult.Success)
{
isPackageExecuted = true;
}

我面临的问题是远程驱动程序包有一个与之关联的配置文件,该文件使用相对路径。当我从我的开发机器上执行驱动程序时,我们从不同的文件夹结构运行到已部署的驱动程序/SSIS 包。所以我可以成功调用驱动程序,但它没有找到本地包,因为它使用本地机器起始地址作为远程服务器上不存在的起点。

例如

开发机

C:\Code\TFS\Test\SSIS\assembly.dll

远程机器

C:\Driver\ConfigsC:\Driver\Packages

当我调用远程机器时,它以“C:\Code\TFS\Test\SSIS”为起点,然后使用相对路径查找 SSIS 包,但未能找到它们。

有没有人解决这个问题或其他方法?


更新,我通过从系统内部执行 psexec 来解决问题,它允许您设置远程机器的工作目录以正确处理相对路径。然后我使用 Process.Start ets 从我的 C# 代码调用 psexec... 传递命令行执行值


最佳答案

Package.ImportConfigurationFile 很乐意采用绝对路径(如 http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.package.importconfigurationfile.aspx 所示),这将让您避免相对路径问题(只要您知道远程计算机文件夹结构)。

关于c# - 在 C# 中使用相对路径的 SSIS 远程执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com