What is the right way to version assemblies for different versions of .NET?
For example, if I have an assembly foo.dll and I produce a version for .NET 2.0 and a version for .NET 4.0, what is the best option:
- Provide two assemblies foo.20.dll and foo.40.dll
- Allow only one version installed on a given computer
- Provide two assemblies with the same short name (foo.dll) but different versions (2.0.0.0 and 4.0.0.0)
- Same as previous case but with different version (x.0.0.2 and x.0.0.4)
- Use same name and version but different public key token
- Other?