比较编译的 .NET 程序集? [英] Compare compiled .NET assemblies?
问题描述
有什么好的程序可以与编译 .NET 程序集进行比较吗?
Are there any good programs out there to compare to compile .NET assemblies?
例如我有 HelloWorld.dll (1.0.0.0) 和 HelloWorld.dll (2.0.0.0),我想比较差异我该怎么做?
For example I have HelloWorld.dll (1.0.0.0) and HelloWorld.dll (2.0.0.0), and I want to compare differences how can I do this?
我知道我可以使用 .NET Reflector 并使用 Assembly Diff 插件.有没有其他好的工具可以做到这一点?
I know I can use .NET Reflector and use the Assembly Diff plugin. Are there any other good tools out there to do this?
推荐答案
商业:
免费:
- JustAssembly(仅显示 API 中的差异)
- BitDiffer(相同)
- Reflector Diff Add-in(您已经发现,但不再可用)
- JustAssembly (only shows differences in API)
- BitDiffer (same)
- Reflector Diff Add-in (which you've already discovered, but not available anymore)
现有的比较工具,如 Beyond Compare(商业版)可以通过特殊配置来做到这一点.以下是针对 Beyond Compare 执行此操作的方法:
Existing compare tools like Beyond Compare (commercial) can do this by special configuration. Here's how to do this for Beyond Compare:
- 转到工具 → 选项
- 点击新建..,选择文本格式",点击确定
- 为其命名(例如,EXE 或 DLL),并将掩码指定为
*.exe
或*.dll
- 点击标签 Conversion 并选择外部程序(Unicode 文件名)"
- 在Loading"下,指定
ildasm
的路径并添加%s/OUT:%t/NOBAR
(即:C:Program Files(x86)Microsoft SDKsWindowsv10.0AinNETFX 4.8 Toolsildasm.exe %s/OUT:%t/NOBAR
) - 确保选中禁用编辑.
- 点击保存,然后关闭
- 重启BC并打开两个
exe
文件进行对比,现在应该会自动反编译成ilasm
.
- Go to Tools → Options
- Click New.., select "Text format", click OK
- Give it a name (say, EXE, or DLL), and specify the mask as
*.exe
or*.dll
- Click on tab Conversion and select "External program (Unicode filenames)"
- Under "Loading", specify the path to
ildasm
and add%s /OUT:%t /NOBAR
(i.e.:C:Program Files (x86)Microsoft SDKsWindowsv10.0AinNETFX 4.8 Toolsildasm.exe %s /OUT:%t /NOBAR
) - Make sure to check disable editing.
- Click Save, then Close
- Restart BC and open two
exe
files to compare, it should decompile intoilasm
automatically now.
您还可以为这种新格式添加语法突出显示.我计划将语法文件发送给他们,以便可以共享一>.
You can also add syntax highlighting to this new format. I plan to send the syntax file to them so that it'll become available to share.
这篇关于比较编译的 .NET 程序集?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!