我的项目是针对于.NET 4.5。 它不使用任何新的4.5的方法,所以它实际上是在机器上正常工作,只有.NET 4.0安装。
这是所有的好,直到我增加了一些扩展方法和思考。 然后,当我跑了4.0的机器上这个.NET 4.5的程序,它失败,“System.TypeLoadException:未能加载类型的组件的mscorlib‘System.Runtime.CompilerServices.ExtensionAttribute’”。 已记录以及著名ExtensionAttribute程序在这里 。
另一种快速的方法来测试,这是添加以下行。 然后在只有.NET 4.0运行时,程序会抛出异常。
Console.WriteLine(typeof(System.Runtime.CompilerServices.ExtensionAttribute).Assembly.FullName);
我不知道是否有一种方法来解决它。 例如,ILMerge(使用作为记录在链接正确/上投放选项时)实际上从mscorlib程序改变ExtensionAttribute到System.Core程序,如果该项目为目标的.NET 4.0(4.5安装)。 但它似乎并没有在针对.NET 4.5的项目。
我知道这是一个长镜头。 但只是想看看是否有人有其他的想法,因为它是如此接近。
谢谢。