Mono.Cecil,Missing编译器需要成员'System.Runtime.CompilerServices.ExtensionAttribute..ctor'

时间:2010-12-04 11:45:51

标签: c# mono mono.cecil

我下载了最新的Mono.Cecil,现在每当我启动项目时,它都会给我一个错误。如果我删除并添加mono.cecil,它就会消失。但每次打开我的项目时都会感到很痛苦。

3 个答案:

答案 0 :(得分:4)

对于想要在内部使用扩展方法的所有.NET 2.0项目,这个问题是一个众所周知的问题,因此声明它们自己的内部System.Runtime.CompilerServices.ExtensionAttribute来允许这个问题。

解决此问题有多种方法,如果您使用的是.NET 3.5或更高版本,只需编译Mono.Cecil并定义NET_3_5NET_4_0即可。如果您的目标是.NET 2,那么您可能会很幸运,并且可以直接编译(这取决于一些编译器内部,绝对不是csc命令行或MSBuild)。如果没有,解决方法将从2.0 Cecil程序集中剥离该属性的所有出现(包括定义)(使用Cecil本身......)。

我有already done this,这不是什么大问题。但是我觉得您的问题与众不同,所以请提供有关您正在使用/定位的Mono版本和.NET版本的更多详细信息。

答案 1 :(得分:2)

我通过从项目中删除对“Mono.Cecil.dl”和“Mono.Reflection.dll”的引用来修复此错误。

这两个文件附带db4o v8.0 (an object database),并且似乎不需要db4o在Windows 7 x64 + .NET 4.0下以其基本的非优化模式运行。

答案 2 :(得分:0)

我也面临同样的问题。错误System.Runtime.CompilerServices.ExtensionAttribute..ctor

我在我的项目中使用Newtonsoft.Json.Net dll(reference)。我删除了对文件Newtonsoft.Json.Net20.dll的引用,并重新添加它。在此之后我的解决方案再次构建。

奇怪但真实......我的应用程序构建成功。

Error when using extension methods in C#

谢谢,