WinSCP .NET程序集抛出“模块预计包含程序集清单”

时间:2013-11-09 20:34:06

标签: c# .net visual-studio-2012 winscp winscp-net

我正在尝试在我的C#项目中使用WinSCP进行一些ftp自动化。 我正在使用Visual Studio 2012,并且不确定如何使其工作。

到目前为止我所做的事情:

  • 我将WinSCP.exe复制到我的项目文件夹中。
  • 我将对WinSCPnet.dll的引用导入到我的项目中
  • 我跑了C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe Path/To/WINSCPnet.DLL /codebase /tlb

这是我现在的代码:

using WinSCP;

static void Main(string[] args)
{
    try
    {
        SessionOptions sessionOptions = new SessionOptions
        {
            Protocol = Protocol.Ftp,
            HostName = "hostname.address.com",
            UserName = "Username",
            Password = "Password"
        };
    }
    catch (Exception e)
    {
        Console.WriteLine("Error: {0}", e);

    }
}

当我在代码中运行它时,我得到以下异常:

Could not load file or assembly 'WinSCP, Version=1.0.7.3446, Culture=neutral,
PublicKeyToken=b5f19f5762436b89' or one of its dependencies. The module was expected to
contain an assembly manifest.

Visual Studio的错误是:BadImageFormatException未处理。

我不确定如何将WinSCP导入我的C#程序,并希望得到一些指导。

结论 我使用的是5.2.5 Beta和32bit,但我的项目是64位

1 个答案:

答案 0 :(得分:4)

我认为你的项目是64位,而WinSCP .NET程序集的分布式二进制文件只有32位。将项目切换为32位或从源代码构建64位版本的程序集。

另请注意,您无需注册程序集(regasm)。这只适用于COM互操作。直接使用它。