反编译exe生成的AssemblyInfo.cs在VS中报CS1112错误求助
Fixing CS1112 Error: "Do not use 'System.Runtime.CompilerServices.ExtensionAttribute'" in Decompiled AssemblyInfo.cs
这问题我之前帮朋友排查过,本质是dotPeak这类反编译工具的小bug——它错误地把只适用于扩展方法类的ExtensionAttribute标记到了程序集级别,而C#编译器对这种不符合规范的用法会直接抛出CS1112错误。
解决起来很简单,按这几步来:
删掉错误的程序集特性
打开你的AssemblyInfo.cs,直接移除这一行:[assembly: Extension]这行是反编译生成的无效代码,原exe能正常运行是因为CLR执行时对这类错误标记的容忍度更高,但编译器会严格卡规范。
清理冗余的命名空间引用
顺便把开头的using ns0;也删掉——这是反编译工具给未识别的命名空间自动生成的占位符,你的代码里根本没用到它,留着只会增加不必要的编译警告。重新构建项目
做完上面两步,回到Visual Studio点击重新构建,CS1112的错误应该就彻底消失了,你可以正常调试和修改代码了。
补充一句:反编译出来的代码经常会有这类不符合规范的小问题,比如占位符命名空间、错误的特性标记,遇到这种情况不用慌,对照编译器错误提示针对性修改就行。
内容的提问来源于stack exchange,提问作者Your Mate
相关产品推荐
相关产品推荐

