"Cannot execute script because the script entry point is invalid" SSIS 脚本任务错误

"Cannot execute script because the script entry point is invalid" error in script task in SSIS

我正在尝试使用 SSIS 脚本任务将文件从我的本地文件夹上传到 SFTP。从 https://winscp.net/eng/docs/library#csharp 复制脚本时出现错误

Error: Cannot execute script because the script entry point is invalid.

下面是完整的脚本:

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using WinSCP;

namespace ST_1ae95a63b20641ffb8ed1769503e2841
{
    [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    {
        #region Help:  Using Integration Services variables and parameters in a script
        class upload
        {
            public static int Main()
            {
                try
                {
                    SessionOptions sessionOptions = new SessionOptions
                    {
                        Protocol = Protocol.Sftp,
                        HostName = "a.com",
                        UserName = "btest",
                        Password = "c",
                        SshHostKeyFingerprint = "ssh-rsa 2048 avc",
                    };

                    using (Session session = new Session())
                    {
                        // Connect
                        session.Open(sessionOptions);

                        // Upload files
                        TransferOptions transferOptions = new TransferOptions();
                        transferOptions.TransferMode = TransferMode.Binary;

                        TransferOperationResult transferResult;
                        transferResult =
                            session.PutFiles(@"d:\abc\efdg\*", "/cvf/pqr/", false, transferOptions);

                        // Throw on any error
                        transferResult.Check();

                        // Print results
                        foreach (TransferEventArgs transfer in transferResult.Transfers)
                        {
                            Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
                        }
                    }

                    return 0;
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error: {0}", e);
                    return 1;
                }
            }
        }
    }
}

如果有人能帮我解决这个错误,我将不胜感激。

据此Msdn article:

Make sure in the script task's editor, the Script page's Entry Point property is set to ScriptMain.

附加信息

作为WinSCP example for SSIS shows,签名应该是这样的:

[AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain : VSTARTScriptObjectModelBase
{
    public void Main()
    {
        // ...
    }
}

特别是删除嵌套的 upload class.