3

FTP 自動化のために C# プロジェクト内で WinSCP を使用しようとしています。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 と 32 ビットを使用していましたが、私のプロジェクトは 64 ビットでした。

4

1 に答える 1

4

あなたのプロジェクトは 64 ビットですが、WinSCP .NET アセンブリの配布バイナリは 32​​ ビットのみです。プロジェクトを 32 ビットに切り替えるか、ソース コードからアセンブリの 64 ビット バージョンをビルドします。

また、アセンブリを登録する必要がないことに注意してください ( regasm)。これは COM 相互運用専用です。あなたが直接それを使用している間。

于 2013-11-10T06:16:59.737 に答える