我正在尝试在我的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位
答案 0 :(得分:4)
我认为你的项目是64位,而WinSCP .NET程序集的分布式二进制文件只有32位。将项目切换为32位或从源代码构建64位版本的程序集。
另请注意,您无需注册程序集(regasm
)。这只适用于COM互操作。直接使用它。