When using public key authentication, the launcher does not adapt the path to the key file. As a result, WinSCP does not find the key when the drive letter changes.
Workaround: manually remove the drive letter from the [Sessions\your_stored_session] section in winscp.ini, e.g. PublicKeyFile=H:%5CPortableApps%5CWinSCPPortable%5CData%5Csettings%5Cpublick_key.ppk
It is also worth nothing that changing the "configuration storage" preferences to the registry apparently deletes all the sessions that were previously stored in the ini file, there is no going back.
Finally, for those who want to automatically start a session, just edit AdditionalParameters=your_stored_session in WinSCPPortable.ini
I had a very similar issue with Putty (still using public keys) except this time both the drive letter and the PortableApps directory had changed.
I found a relevant comment in the forums: https://portableapps.com/node/5529#comment-26609
This means I can manually make the path fully relative, but it would of course be nice if the launcher could transparently take care of that...
Then John should fix it.
“I can live with doubt and uncertainty and not knowing. I think it is much more interesting to live not knowing than to have answers that might be wrong.” - Richard P. Feynman
"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate
I hadn't played with that myself, since I don't use public keys for anything. Can you send me your winscp.ini (feel free to XXX out important info) or just the relevant section. Send it to the developers address on the contact page.
I'll add this into an update.
Sometimes, the impossible can become possible, if you're awesome!