Mono.Cecil,缺少编译器所需的成员“System.Runtime.CompilerServices.ExtensionAttribute..ctor”;
我下载了最新的 Mono.Cecil,现在每当我启动我的项目时都会出现该错误。如果我删除并添加 mono.cecil,它就会消失。但每次我打开项目时,这都是一件痛苦的事情。
I downloaded the latest Mono.Cecil and now whenever I start up my project it gives me that error. It goes away if I remove and add mono.cecil. But that is a pain to do every time I open my project.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于所有想要在内部使用扩展方法并因此声明自己的内部
System.Runtime.CompilerServices.ExtensionAttribute
以允许这样做的 .NET 2.0 项目来说,此问题是一个众所周知的问题。有多种方法可以解决此问题,如果您使用 .NET 3.5 或更高版本,只需编译定义了
NET_3_5
或NET_4_0
的 Mono.Cecil 即可。如果您的目标是 .NET 2,您可能很幸运,可以开箱即用地进行编译(这取决于某些编译器内部结构,绝对不是 csc 命令行或 MSBuild)。如果不是,解决方法是从 2.0 Cecil 程序集中删除所有出现的该属性(包括定义)(使用 Cecil 本身...)。我已经已经完成了此操作,这不是什么大问题。不过,我觉得您的问题是不同的,因此请提供有关您正在使用/定位的 Mono 版本和 .NET 版本的更多详细信息。
This issue is a well know problem for all .NET 2.0 Projects that want to use Extension Methods internally and therefore declare their own internal
System.Runtime.CompilerServices.ExtensionAttribute
to allow this.There are various ways around this problem, if you're using .NET 3.5 or higher, simply compile Mono.Cecil with
NET_3_5
orNET_4_0
defined. If you're targeting .NET 2 you might be lucky and get it to compile (it depends on some compiler internals, definitely not the csc commandline or MSBuild) out of the box. If not, the workaround would be stripping all occurences of that Attribute (including the definition) from the 2.0 Cecil assembly (using Cecil itself...).I have already done this and it's not a big deal. However I feel your issue is a different one, so please provide a little more detail on the Mono Version and .NET version you're using/targeting.
我通过从项目中删除对“Mono.Cecil.dl”和“Mono.Reflection.dll”的引用来修复此错误。
这两个文件随 db4o v8.0(对象数据库) 一起提供,并且 db4o 似乎不需要在 Windows 7 x64 + .NET 4.0 下以其基本的、非优化的模式运行。
I fixed this error by removing the reference to "Mono.Cecil.dl" and "Mono.Reflection.dll" from my project.
These two files come with db4o v8.0 (an object database) and don't appear to be needed for db4o to operate in its basic, non-optimized mode under Windows 7 x64 + .NET 4.0.
我也面临着同样的问题。错误 System.Runtime.CompilerServices.ExtensionAttribute..ctor
我在项目中使用 Newtonsoft.Json.Net dll(reference)。我删除了对文件 Newtonsoft.Json.Net20.dll 的引用,然后重新添加了它。之后我的解决方案再次构建。
奇怪但真实......我的应用程序构建成功。
在 C# 中使用扩展方法时出错
谢谢,
I am also facing the same problem. The error System.Runtime.CompilerServices.ExtensionAttribute..ctor
I'm using Newtonsoft.Json.Net dll(reference) in my project. I removed the reference to the file Newtonsoft.Json.Net20.dll, and the re-added it. After this my solution builds again.
Strange but true...my application builds successfully.
Error when using extension methods in C#
Thanks,