今天部署一个新的后台项目,是从老的项目中分离出来的,项目版本是.NetFramework 4.5.1的,因为和新的.NetCore接口共用一套实体类,而.NetStandard不支持.NetFramework4.5.1,无奈之下只好将老项目的版本升级为.NetFramework4.7.2,在构建部署到生产服务器之后出现了问题,报错如下:

网上查了下资料,清一色推荐在服务器上安装4.7.2版本,一开始我也傻乎乎的去安装了新版本,但随之而来的就是新的问题——需要重启服务器,这可是生产环境,哪那么容易重启,就在我纠结要不要报备后等晚上下班后夜深人静重启服务器的时候,突然灵光一闪。
这个compliation节点是一个指定编译目标版本的设置,但我项目肯定是Jenkins已经构建好发布了的,还有啥玩意需要在生产环境编译的呢?没错,是cshtml页面!那么也就是说,这个编译实际上只影响我页面的编译,我立刻在本地开发环境验证了一下,将该节点的targetFramework改为4.5.1,也就是服务器上已有的.NetFramework版本:
<compilation targetFramework="4.5.1">
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</assemblies>
</compilation>
特此记录一下,看来很多东西还是要理解原理,不能人云亦云。