title: "Cannot execute script because the script entry point is invalid" error in script task in SSIS
body: <p>I am trying to upload files from my local folder to SFTP using SSIS Script Task. On replicating the script from <a href="https://winscp.net/eng/docs/library#csharp" rel="nofollow noreferrer">https://winscp.net/eng/docs/library#csharp</a> I get an error </p>
  
  <blockquote>
    <p>Error: Cannot execute script because the script entry point is invalid. </p>
  </blockquote>
  
  <p>Below is the complete script: </p>
  
  <pre><code>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;
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p>I would appreciate if someone can help me with this error.  </p>