This type of attitude, wanting to use the work of others without paying a dime, is what moved me away from FOSS.
Lock you in? To what? I see it as just another option (tool) of the many available tools out there. If it is better than the rest and makes it easier to build solutions, I would consider paying for it.
And when you decide to switch to Linux your VS becomes useless
If you already had cross-platform in mind, then I guess don't consider C#, or any .NET stuffs.
Use something like Java or Python, instead.
Anyway, MS don't force you to use their technologies :p
C# and .Net (both versions) are cross platform. Core being made from the ground up to be cross platform.