SharpSSH を使用して xml ファイルを UNIX マシンに転送しています。ファイルを書き込むコードは次のとおりです。
public override void WriteFile(string directoryName, string fileName, string responseText) {
try {
sshExec.RunCommand(@"echo """ + responseText + @""" > " + directoryName + "/" + fileName);
} catch (Exception e) {
log.Error("Failed to write file at " + directoryName + "/" + fileName);
throw new Exception("Failed to write file to " + directoryName + "/" + fileName, e);
}
}
問題は、これらのファイルが XSD 検証に失敗することです。転送前にそれらをチェックすると、検証に合格します。問題はASCIIモードでコピーされることであり、特に問題は行末文字である可能性があるのではないかと疑っていました。バイナリ モードで転送するように設定するまでは、WinSCP を使用していたときにこの問題が発生していました。
受信側のアプリケーションが UNIX で実行されている場合でも、Windows の文字セットが必要であり、その処理方法を認識していると言うことが重要です。
SharpSSH の開発者は、実装がバイナリ モードのみをサポートしていると主張しています。誰もこのライブラリの経験があり、これに光を当てることができますか?
編集
Crlf文字なしで応答が送信されているように見えるので、今は完全に困惑しています。