You can try WinSCP .NET assembly (C# wrapper around WinSCP scripting interface):
Its SessionOptions.SshPrivateKeyPath
accepts a path to .ppk
file.
(I'm the author of WinSCP)
Or you can use PuTTYgen to convert the .ppk
private key file to a format supported by your preferred SSH/SFTP library.