我们最近安装了.NET 4.5到我们的持续集成构建服务器,以便它可以支持使用的.NET 4.5功能的新项目。 此版本的服务器也可以用来构建和部署旧项目,以及,其中一些针对.NET 4.0。
面向.NET 4.0正在建造这台服务器上的项目,然后部署到只有.NET 4.0安装正与下面的错误而失败目标服务器:
Method not found: 'Int32 System.Environment.get_CurrentManagedThreadId()'.
Environment.CurrentManagedThreadId是.NET框架4.5的新特性,所以它是有道理的,运行4.0的服务器无法找到它。 然而,我们在构建时针对.NET 4.0,因此从理论上讲,我们不应该需要安装在生产服务器上4.5。
总结一下:
- 项目的目标是4.0
- 构建服务器已经安装了4.5
- 在该项目随后被部署服务器只有.NET 4.0
- 项目失败的,错误运行时
Method not found: 'Int32 System.Environment.get_CurrentManagedThreadId()'.
是什么赋予了? 是否有可能只用.NET 4.0时,DLL是用.NET 4.5的服务器内置安装在服务器上成功运行.NET 4.0的dll?