If using a 3rd-party is an option, you can try this
sftp library for .net c# & vb. Here is an example code of how to upload files:
Sftp client = new Sftp();
client.Connect("localhost");
client.Authenticate("test", "test");
client.Upload("c:\\temp", "/temp");
client.Upload("c:\\myfolder2", "/myfolder2", "*.cs");
client.Upload("c:\\myfolder2\\*.css", "/myfolder2");
client.Upload("c:\\myfolder2\\*.cs;*.vb", "/myfolder2");
client.Disconnect();