問題タブ [winscp-net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - アプリケーションでは、最初にアセンブリ WinSCP バージョン 1.0.6.3261 をグローバル アセンブリ キャッシュ (GAC) にインストールする必要があります。
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
ますが、アプリケーションを再インストールしようとすると、対象のマシンに同じエラー メッセージが表示されます。
残念ですが、この問題を解決できない場合は、この製品の使用をやめて、別の製品を試す必要があります。
c# - WinSCP put-file メソッドの呼び出し後にプログラム制御が失われる
sFTP および FTP ファイル転送に WinSCP を使用しています。次のコードを使用します。
sFTP プロトコルを使用すると、すべてが期待どおりに機能します。使用時WinSCP.Protocol.ftp
- プログラム制御はに移動され transferResult = session.PutFiles(sFTP_localPath, sFTP_remotepath, false, transferOptions);
ます。制御は二度とプログラムに戻ることはありません。timeout で試しても; それは単に機能しません。回避策は何ですか?編集: ファイルは ftp の場所にコピーされます。ログ ファイルが大きくなり続けます。ログ:
c# - WinSCP 更新 C# プログレス バー
FileTransferProgressEventArgs
C# で WinSCP .NET アセンブリを使用してイベントが発生した時点で送信されたファイルの割合を知るのに問題があります。
FileProgress
返品のみ0
または、またはドキュメントに (0-1) と記載されていますが、これ1
は理解できません。送信されたファイルのバイト数を知る必要がありますが、理解できない0,1ではありません。CPS が 1 秒あたりのバイト数であることはわかっていますが、さらに変数が必要です。
プログレスバーをインクリメントする方法は次のとおりです。
それは私が助けることができるe.FileProgress
とe.CPS
思ったが、私は何かが欠けているようだ.
c# - C# .NET で WinSCP プロセスからシェル スクリプト [.sh] を実行する方法
次の手順を正常に実行しました。
- C# .NET で WinSCP [プロセス] を作成しました
- LINUX サーバーでユーザーのセッションを作成 [SFTP プロトコルを使用]
- を使用してファイルをダウンロードしました
GetFiles(........);
アプリに追加したいことは次のとおりです。
- そのプロセスにシェルスクリプトを実行するコマンドを与えます[サーバーに既にアップロードされています]
- これを試しまし
session.ExecuteCommand("sh /fol1/fol1_1/abc.sh");
たが、結果/影響はありません
.net - WinSCP .NET アセンブリでコマンド sudo bash を実行します
sudo bash
VB.NET と WinSCP を使用してコマンドを実行しようとしています。
私はこのコードを使用しています:
最後の行でエラーが発生します
sudo: tty が存在せず、askpass プログラムが指定されていません。
パスワードを入力できません。のようにWindowsでコマンドラインを使用するssh username@host
と、パスワードを要求され、入力してから実行sudo bash
してパスワードを再度入力できますが、WinSCPでそれを行うにはどうすればよいですか?