0

SFTP 転送を有効にするために、アプリ内で WinSCP .NET アセンブリの使用を開始しました。すべてが順調で、コードは非常にうまく機能します。

私の問題は展開から来ています。

まず、NuGet パッケージ マネージャー (バージョン 5.7) を介して WinSCP をインストールしました。

述べたように、私が持っているコードはうまく機能し、SFTP サーバーに正常に接続し、ファイルを転送、名前変更、および削除します。

しかし....

アプリケーションを公開すると、次のエラー メッセージが表示されます。

アプリケーションをインストールまたは実行できません。アプリケーションでは、最初にアセンブリ WinSCP バージョン 1.0.6.3261 をグローバル アセンブリ キャッシュ (GAC) にインストールする必要があります。

面白いことに、WinSCPnet.dllNuGet からインストールされた のバージョンは 1.2.6.5125 です。

私は VS 2013 Ultimate を使用しており、組み込みの公開ウィザードを使用しています。

WinSCPnet.dllネットを見回すと、GAC にある必要があるという記事を見つけたので、最初のアクションは、 WinSCPnet.dll(バージョン 1.2.6.5125) のインストール済みバージョンを、目的のマシンの GAC に を使用して手動で追加するgacutil /I winscpnet.dllことでした。これはそのまま成功しました。フォルダには表示されWindows\assemblyますが、アプリケーションを再インストールしようとすると、対象のマシンに同じエラー メッセージが表示されます。

残念ですが、この問題を解決できない場合は、この製品の使用をやめて、別の製品を試す必要があります。

4

2 に答える 2

1

アプリケーションをビルドしたのとは異なるバージョンのアセンブリでアプリケーションを公開しているようです。

WinSCP .NET アセンブリ バージョン 1.0.6.3261 には、WinSCP 5.1.5 が付属しています。

プロジェクトから WinSCP へのすべての参照を削除し、アセンブリのすべてのコピーを削除して、NuGet からアセンブリを再インストールすることをお勧めします。

次に、次のことを確認してください。

  • ソリューション エクスプローラーで、Copy LocalプロパティがTrueに設定されています。WinSCPnet.dll
  • プロジェクトのプロパティで、[発行] ページに移動し、[アプリケーション ファイル] をクリックして、[発行ステータス] が [含める]に設定されていることを確認します。WinSCPnet.dll

(ただし、NuGet からアセンブリをインストールする場合、これらは既定値である必要があります)

于 2015-03-25T07:03:44.323 に答える
0

WinSCP サポートに問い合わせたところ、セットアップに問題があったことが判明しました。

アプリを公開する前に、以下を確認する必要があります。

[プロジェクトのプロパティ] で [発行] ページに移動し、[アプリケーション ファイル] をクリックして、[発行ステータス] が WinSCPnet.dll の [含める] に設定されていることを確認します。

于 2015-03-27T13:22:22.027 に答える