title: How do you handle backwards/forwards .Net framework compatibility (and software distribution)?
body: <p>Let's say I have created a console application (for simplicity's sake, there are no complicated dependencies on versions of GUI or web frameworks) using .Net 4.5. Next year, ".Net 5" is released and I want to update my application to use the fancy new APIs (to improve performance, source code readability, etc). However, I still want to maintain (critical bug fixes, etc) the previous version of the application for users who haven't upgraded their runtime.</p>
  
  <p>How is this situation handled? Do I need to make 2 executables available and ask that users download the one that is appropriate, or is there a way to distribute a single executable/installer that determines which version to run automatically?</p>
  
  <p>Or, is this even a valid question? If I want to continue supporting users on the "old" .Net 4.5 am I obligated to continue building ONLY against that framework?</p>