So even though two programs would be communicating through CLI, they still can be considered one program because of the semantics of the communication. In this case, the wrapper is quite tightly tied to WinSCP (the wrapper needs to know how to parse the output from WinSCP etc.) so one could argue they are one program and GPL applies if you distribute the combination.
Well, I'm not a lawyer.
But historically, there was first the CLI interface (since 2004):
https://winscp.net/eng/docs/scripting
Then we added an XML log output, so that people who automate CLI execution can reliably parse the results. The output is well documented since March 2009:
https://winscp.net/eng/docs/logging_xml
Then we provided a guide for developers on implementing XML logging parser (March 2011):
https://winscp.net/eng/docs/guide_interpreting_xml_log
And only after that we added the .NET assembly as an example implementation for the above guide (December 2011):
https://winscp.net/eng/docs/library
So, anyone, even without understanding of internal workings of the
winscp.exe
, can develop this on his/hers own, as there's a public well-documented CLI/XML interface (not a programming API).
The .NET assembly does not expose anything that is not readily available already. So I do not think it circumvents the GPL license anyhow. And it was definitely not our goal to do that.