SSIS 包无法 运行 使用脚本任务

SSIS Package Fails To Run With Script Task

我有一个控制台应用程序试图 运行 一个 SSIS 包(在包部署模式下)。控制台应用程序和 SSIS 包都位于我的 C: 驱动器上。只要调用的包不包含脚本任务,代码就可以工作。当调用的包包含脚本任务时,出现此错误:

Package Execution results: The task has failed to load. The contact information for this task is "".
Package Execution results: There were errors during task validation.
Package Execution results: The package cannot execute because it contains tasks that failed to load.

我已经尝试 运行从 SSDT 调用包并 运行s 成功。但是当下面代码中的 运行 时,它失败了。根据类似帖子的回答,我尝试更改被调用包的 TargetServerVersion 属性。但是仍然会出现同样的错误。控制台应用程序和调用的脚本任​​务都使用 .NET Framework 4.7.2 作为目标框架。

知道哪里出了问题吗?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.SqlServer.Dts.Runtime;

namespace PackageTester
{
    class Program
    {
        static void Main(string[] args)
        {
            string SSISPackagePath = @"C:\-------\console_app_test_2.dtsx";
            string datafilePath = @"C:\-------\datafiles\my_data_file.csv";

            string results = FireSSIS(SSISPackagePath, datafilePath);

            Console.WriteLine(results);
            Console.ReadLine();
        }

        public static string FireSSIS(string packagePath, string FilePath)  
        {
            string result = string.Empty;
            try
            {
                Application app = new Application();
                Package package = null;

                package = app.LoadPackage(packagePath, null);

                Variables myVars = package.Variables;

                myVars["SourceFilePath"].Value = FilePath;

                DTSExecResult results = package.Execute(null, myVars, null, null, null);

                if (results == DTSExecResult.Success)
                {
                    result = "Success";
                }
                else
                {
                    foreach (DtsError local_DtsError in package.Errors)
                    {
                        result += string.Concat($"Package Execution results: { local_DtsError.Description }\r\n");
                    }
                }                
            }

            catch (DtsException ex)
            {
                Console.WriteLine (ex.Message);
            }

            return result;
        }
        
    }
}

这是一个已知的限制。任何带有脚本任务的包都将无法 运行 在“正确的”集成服务安装之外。据我所知,这是一个许可问题。可能还有其他限制。