【问题标题】:Run SSIS in .Net 5 Application在 .Net 5 应用程序中运行 SSIS
【发布时间】:2021-12-16 08:39:49
【问题描述】:

我想创建可以运行 SSIS 包的 .Net 5 应用程序。

这是我执行包的代码。

Application app = new Application();
Package package = app.LoadPackage(@"C:\Package1.dtsx", null);

for (int i = 0; i < package.Connections.Count; i++)
{
    Connections connections = package.Connections;

    //This is the line that causes error
    ConnectionManager connectionManager = connections[0];

    Console.WriteLine(connectionManager.Name);
}

DTSExecResult results = package.Execute();

它编译没有错误,但是在执行时,在获取连接的那一行,它会引发一个错误,说

无法加载文件或程序集 'Microsoft.SqlServer.Diagnostics.STrace,版本=12.0.0.0, 文化=中性,PublicKeyToken=89845dcd8080cc91'。系统无法 找到指定的文件。

我什至找不到 Microsoft.SqlServer.Diagnostics.STrace 的 dll。我认为这是因为我使用 .Net Core 并且 SSIS 库仅支持 .Net Framework,但是在项目中需要运行 SSIS,所以我试图找到一种方法来执行它,即使生成的 .Net Core 应用程序只能用于windows环境。有谁知道怎么做?

【问题讨论】:

    标签: c# ssis .net-5


    【解决方案1】:

    截至当前版本的 SSIS,SQL Server 2019,它是一个基于 .NET Framework 的解决方案。脚本任务以 4.5 为默认目标,因此将其作为 SSIS 基础与当前框架相距多远的指标。我不相信您将能够使用 SSIS 对象模型来控制包执行。

    另一件需要注意的事情,即使你设法让它发挥作用,你也可能会遇到法律问题。在 Visual Studio 之外运行 SSIS 包需要在运行 SSIS 包的计算机上安装 SQL Server 许可证。期间,句号,不通过去,不收取200美元。因此,如果您的应用程序在运行 SSIS 包的同时完成了这些很酷的工作,那么应用程序消费者需要准备好在运行它的机器上为每个内核支付 10-20k 的许可费,至少 4 个内核。

    否则,你会遇到类似的错误

    要在 SQL Server Data Tools 之外运行 SSIS 包,您必须安装标准版的 Integration Services 或更高版本

    或错误指定未安装组件。

    因此,假设您已获得许可,并且没有其他人对如何使 .Net Core 操作 .Net Framework 代码有更好的了解 - 您还能如何运行包?

    DTEXEC

    当您安装 SQL Server 安装介质上的“SQL Server Integration Services”服务时,有一个 SSIS 服务选项。这将帮助您完成许可检查,并在 32 位和 64 位应用程序路径中安装 dtexec.exe。运行包部署模型包变成dtexec /f path/to/my/package.dtsx

    知道了,Core 似乎支持System.Diagnostics.Process,所以在设置了所有参数https://stackoverflow.com/a/181857 后,您正在查看类似Process.Start("dtexec.exe"); 的调用

    SSISDB

    使用项目部署模型创建您的包并部署到获得许可的 SQL Server 机器上,然后这些困难的事情就消失了。您的应用程序需要担心的只是连接到 SQL Server,然后请求 SQL Server 到 run the package

    【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 2011-08-10
    • 2013-12-21
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多