Few Weeks back I had the chance to upgrade SQL server from 2012 to 2016 which host SCCM DB. Usually SQL Upgrades are very straight forward process. You can read a very good article about how to do SQL upgrade here. https://www.virtualizationhowto.com/2017/03/how-to-upgrade-sql-server-2014-to-sql-server-2016/
But after straight forward upgrade and testing everything was fine except SCCM, reporting will not load and was throwing an error Failed to load expressions host assembly. But SQL server was working without an any error.
After looking through many logs I was able to located the issue which was cause by SQL file location changes during the upgrade. Then I had to brows through the internet to find a solution and Microsoft recommend solution was to reinstall Reporting Service Point (RSP) role which is describe here https://social.technet.microsoft.com/wiki/contents/articles/15475.how-to-successfully-install-reporting-services-point-role-in-sccm-2012-sp1.aspx
But I wasn’t dare enough to go and mess around SCCM and found very good solution here https://ronnydejong.com/2013/05/23/reporting-service-point-rsp-broken-after-upgrading-sql-server-2012-sp1-sysctr/ This was listed solution for upgrade from 2008 to 2012 but same solution worked for my situation also.
****Basically, copy srsresources.dll from old SSRS install location which was in my case was in \Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\Report Server\Bin
New SSRS location \Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\Report Server\Bin
****Then find rssrvpolicy.config file in new SSRS install (\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\Report Server\Bin) open with note pad
****Then search for the SRSResources URL within note pad and change the URL to new location where DLL copied in first step.
Then you are done.