首页
社区
课程
招聘
[分享]Reflector.Addin v.6.5.0(33 + 46 + 57 + 70 + 89 + 99 + 106 + 120 + 123) C# 源码
发表于: 2010-4-19 20:23 62795

[分享]Reflector.Addin v.6.5.0(33 + 46 + 57 + 70 + 89 + 99 + 106 + 120 + 123) C# 源码

2010-4-19 20:23
62795
收藏
免费 7
支持
分享
最新回复 (123)
雪    币: 446
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
26
google 一下 EnvDTE90
2010-5-10 08:15
0
雪    币: 303
活跃值: (461)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
按照1楼的改完,不能解决问题
2010-5-10 12:26
0
雪    币: 446
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
28
c000150.cs,c000152.cs,c00036f.cs,c000371.cs这几个文件
学习一下C#的语法吧
2010-5-10 13:27
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
终于在网上找到单独的dll,编译通过了,谢谢
2010-5-11 00:52
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
出错的都可能是自己编译器的环境的问题,我的很好,很正常。
2010-5-13 10:13
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
31
太爱你了,对付.net程序目前仍以静态反编译为主,没有你,世界黑了一半
2010-5-13 13:31
0
雪    币: 303
活跃值: (461)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
因为你一只眼上有墨镜
2010-5-14 11:32
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
33
你好幽默,注册挺早的嘛
2010-5-14 18:09
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
牛人啊,编译成功
2010-5-17 10:17
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
Reflector.Addin.v6.5.0.70 插件一直卡在"Reading assemblies from your solution..."画面
Reflector.Addin.v6.5.0.33 不会卡住
2010-5-17 18:20
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
Reflector.Addin.v6.5.0.33 可以正常使用,楼主太强了
2010-5-17 18:25
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
我也下一个 但是不知道干什么用的
2010-5-17 18:36
0
雪    币: 446
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
38
我测试过 VS2005 + SP1 和  VS2008+SP1 没有发现你说的问题
你说说你的环境,和如何重现这个问题好吗?
2010-5-17 18:41
0
雪    币: 209
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yre
39
Reflector.Addin.v6.5.0.70 插件一直卡在"Reading assemblies from your solution..."画面
我的也是这样
环境: vs2008 sp1
用vs2008sp1将源码编译成功。使用时,当打开解决方案后 打开reflector插件,choose .. to debug就停在"Reading assemblies from your solution..."一直不动

希望找到原因,谢谢
2010-5-18 06:51
0
雪    币: 446
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
40
能不能说的再详细一点? 我这里无法重现这个问题
最好能截个全图。

你自己可以调试一下,一般卡住不是死循环就是线程被挂起,要不就是死锁
2010-5-18 09:53
0
雪    币: 209
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yre
41
当关闭解决方案时 出现错误:引用不可用。详见err2.bmp
上传的附件:
2010-5-18 10:08
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
环境:
VS2005 + windowsXP
VS2008 + windows7
都没有打SP1

重现:
打开VS,新建一个Winform的工程,然后打开.Net Reflector->Choose Assemblies to Debug...,然后就会一直卡在这个画面,而且CPU使用率很高,估计在死循环
上传的附件:
2010-5-18 15:23
0
雪    币: 209
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yre
43
请问楼主 你在vs2008 sp1测试过吗
我的环境是vs2008 sp1,我按照楼主的方法修改了代码后,在vs2008 sp1编译通过。
然后我将生成的reflector.exe RedGate.Reflector.Addin.dll 和log4net.dll 放在一个新目录里。
运行reflactor.exe正常,在option里 选上vs2008 。然后打开vs2008 菜单上也看到了.net reflector。打开一个解决方案 ,然后点 reflector插件下的 choose assemlies to debug,在"Reading assemblies from your solution..."画面 卡住不动了。但不打开解决方案无此现象。
2010-5-18 15:30
0
雪    币: 446
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
44
找到原因了 c000451.cs 中的
if (project != null)
                {
                Label_0038:
                    foreach (Reference reference in project.References)
                    {
                        if (reference.SourceProject == null)
                        {
                            try
                            {
                                this.f001335(reference, this.f001334.m00084c(reference, enum2), enum2);
                                goto Label_0038;
                            }
                            catch (ApplicationException)
                            {
                                goto Label_0038;
                            }
                        }
                    }
                }

这两个goto 删除就行了
2010-5-18 17:05
0
雪    币: 209
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yre
45
呵呵 按照大侠说的修改后 问题解决 再次感谢您!!
大侠就是大侠,高啊!!!!!!!!!!!!!!
2010-5-18 18:44
0
雪    币: 303
活跃值: (461)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
呵呵 按照大侠说的修改后 问题解决 再次感谢您!!
大侠就是大侠,高啊!!!!!!!!!!!!!!
2010-5-20 09:31
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
楼主,能不能把版本检查给去掉?

每次Reflector升级,原来的版本就不能用了,比如现在6.5.0.70就已经不能用了,最新版是6.5.0.89
2010-5-22 11:03
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
自己解决了:

在c00006d.cs文件中:

  internal class c00006d
    {
        public static bool m0000d3()
        {
            return false;//添加这一句就行了
            if (m0000d4())
            {
2010-5-23 10:37
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
另外,想问一下楼主,你这个源码是怎么得到的?

用Reflector反编译后有很多错误,比如标识符含有非法字符(尤其是“局部变量”,无法用Mono.Cecil重命名)

又如,有的时候(好像是随机的,尤其是程序集复杂一点)Reflector会把属性认为是get_XXX/set_XXX,事件认为是add_XXX/remove_XXX

然后还有匿名方法和Lambda表达式,Reflector有可能认为是含非法字符的命名方法(已经选择C#3.0/4.0优化了)

请问你是怎么处理的?

难道首先用Mono.Cecil修正标识符错误

然后在文本(例如正则表达式)的基础上,处理类似get_XXX,add_XXX和非法局部变量这样的问题?

感觉工作量很大啊

我的QQ是544125362,很想跟楼主求经(不敢称探讨)
2010-5-23 10:46
0
雪    币: 446
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
50
用Mono.Cecil来处理,工作量不大,没你想的这么复杂,整理好思路,用点耐心就行了
2010-5-24 09:01
0
游客
登录 | 注册 方可回帖
返回
//