We are currently referencing these binaries in our .NET assembly:
- Microsoft.SqlServer.ConnectionInfo 12.0.0.0
- Microsoft.SqlServer.Management.Sdk.Sfc 12.0.0.0
- Microsoft.SqlServer.Smo 12.0.0.0
Version 12 of these was originally distributed with SQL Server 2014, which is also version I have currently installed on my development PC and that I test against. Our deployment server, however, has SQL Server 2016 installed (version 13.0.5153.0 exactly). I do not remember how exactly did I deploy same version 12 binaries into GAC on this server, but they are there. As a result, our solution runs fine when deployed, because correct version of binaries is found.
How is it possible, that binaries released for SQL Server 2014 work just fine with SQL Server 2016? Am I introducing possible issue here if I happen to use feature that has changed between (sql) server versions and the libraries I referenced will start throwing exceptions?