SFTP 転送を有効にするために、アプリ内で WinSCP .NET アセンブリの使用を開始しました。すべてが順調で、コードは非常にうまく機能します。
私の問題は展開から来ています。
まず、NuGet パッケージ マネージャー (バージョン 5.7) を介して WinSCP をインストールしました。
述べたように、私が持っているコードはうまく機能し、SFTP サーバーに正常に接続し、ファイルを転送、名前変更、および削除します。
しかし....
アプリケーションを公開すると、次のエラー メッセージが表示されます。
アプリケーションをインストールまたは実行できません。アプリケーションでは、最初にアセンブリ WinSCP バージョン 1.0.6.3261 をグローバル アセンブリ キャッシュ (GAC) にインストールする必要があります。
面白いことに、WinSCPnet.dll
NuGet からインストールされた のバージョンは 1.2.6.5125 です。
私は VS 2013 Ultimate を使用しており、組み込みの公開ウィザードを使用しています。
WinSCPnet.dll
ネットを見回すと、GAC にある必要があるという記事を見つけたので、最初のアクションは、 WinSCPnet.dll
(バージョン 1.2.6.5125) のインストール済みバージョンを、目的のマシンの GAC に を使用して手動で追加するgacutil /I winscpnet.dll
ことでした。これはそのまま成功しました。フォルダには表示されWindows\assembly
ますが、アプリケーションを再インストールしようとすると、対象のマシンに同じエラー メッセージが表示されます。
残念ですが、この問題を解決できない場合は、この製品の使用をやめて、別の製品を試す必要があります。