If you write code to SQL Server then you might be interested in this: I have written a tSQLt tdd training course which has helped over 500 people learn both tSQLt and how to apply TDD practices to their SQL Server T-SQL development, you can join the course at https://courses.agilesql.club.
I worked on a project where we had two SSDT projects with different versions of SQL, one 2012 and one 2008. The 2012 project referenced the 2008 project as a “this database” reference and while this seemed like it worked, the reference in solution explorer had a little warning sign and it caused nothing but problems.
The first thing was that the reference didn’t work on anyone else’s machine when they checked out the solution, the other developers had to delete and re-add the reference once., Once it had been done at least once it always worked after that which is the first odd thing.
After that if there were any errors in the first project you would see an error for every object referenced in the 2008 project rather than just the one failure so it was really hard to see the actual problem and the process to get it to work was to build just the 2008 project, see the errors for that and fix them and then build the entire project.
All in all it was just a pain in the thingy so just make your life easier and if you need to have references using “This database” references but being different versions don’t, make them all the same version and either don’t write any code in the new version or stick to the older version code - you make the decision on what works best for you and for the love of god don’t ignore any warnings on references!