问题标签 [ildasm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - 使用 ildasm 检测 WPF 程序集之间的标记差异
我使用 ildasm 来确定构建程序集之间的更改/差异。这很好用,但是当我尝试让它为(WPF 项目)检测 Xaml 中的更改时,我找不到任何差异 - 在对项目标记进行更改之后。
有任何想法吗?我用错了吗?
c# - 反编译器 instr 中的可见属性
我需要知道如何在程序集中找到 MenuStrip 的 Visible 属性。我创建了一个简单的 WinForms 项目并添加了一个 menuStrip。然后我将 Visible 属性更改为 true/false。我正在使用 ildasm.exe 进行反编译,但我无法发现指定 menuStrip 是否可见的区别,说明是相同的。
.net - 可执行文件在 ILDASM 文件浏览器中不可用
当我导航到 时C:\Windows\System32
,我可以看到它包含Query.exe
但是,如果我使用IL DASM
并转到相同的位置,Query.exe
则与少数其他文件一起丢失,即使我为文件类型选择了任何类型
起初我认为这可能是因为query.exe
不能被反编译,但我可以看到.exe
那里的其他 s 也不能被IL DASM
(例如calc.exe
)反编译
为什么IL DASM
会有这样的行为?
linux - .net-core:相当于 ILDASM / ILASM
.net-core 有相当于 ILDASM / ILASM 的吗?
具体来说,我正在寻找在 Linux 上运行的东西(因此为什么要使用 .net-core)。
c# - 以编程方式读取 ildasm 输出的最佳方法是什么
我正在尝试使 ildasm 输出更像 json 或 xml,以便以编程方式读取它有点容易。
我打算这样做的方式是逐行读取输出,然后将类和方法等添加到列表中,然后将其修改并重写为 xml,然后读取它。
问题:有没有更聪明或更简单的方法来读取输出?
c# - 如何从 PEVerify 诊断“类型加载失败”
我正在开发一个编译器,该编译器在某些扩展生成器的情况下会产生错误的输出。PEVerify 只是说“类型加载失败”而没有解释原因。当我过去看到这种情况时,通常是因为生成的类型具有错误数量的泛型参数,但这里似乎一切都匹配。
有什么好方法可以获取有关生成的类型出了什么问题的更详细信息?除此之外,是否有任何好的提示和技术来追踪错误?
PEVerify 的输出:
C:\Build\Test>peverify testcase.exe /VERBOSE /UNIQUE
Microsoft (R) .NET Framework PE 验证程序。版本 4.0.30319.0 版权所有 (c) Microsoft Corporation。版权所有。
[IL]:错误:[C:\Build\Test\testcase.exe:Testing.Linq_operatorModule::IndexWhereImpl[T]][mdToken=0x6000002][offset 0x00000002] 无法解析令牌。
[IL]:错误:[C:\Build\Test\testcase.exe : Testing.Linq_operatorModule+$IndexWhereImpl$3`1[T]::.ctor][mdToken=0x6000006] [HRESULT 0 x8007000B] - 尝试加载格式不正确的程序。
[令牌 0x02000004] 类型加载失败。
3 验证 testcase.exe 的错误
ILDasm 的综合转储在这里,因为它太大而无法放入 SO 帖子。
c# - 删除方法后从 PEVerify 获取“类型加载失败”
短篇故事
我正在使用以下 Mono.Cecil 代码从接口和实现该接口的类中删除除几个方法之外的所有方法。
代码有效,ILDASM 和 JustDecompile 看起来一切都很好,最重要的是,DLL 可以很好地与客户端一起工作。但是,通过 PEVerify 运行它会Type load failed.
为[token 0x02001C35]
.
我曾经ILDASM /TOK
看到哪个令牌是 0x02001C35,它是我正在修改的类 ( BigServiceClient
)。我只是看不出问题是什么。
有关如何进一步调查 PEVerify 错误的任何指针/想法/提示?
很长的故事
我正在使用旧版 SOAP 接口。我svcutil
用来生成代理,但由于这个接口的遗留特性,这些代理非常庞大——就像单个类中有 1500 多个方法一样。这导致了对象创建以及 Castle DynamicProxy 代理的一些性能问题。
作为快速测试,我从生成的 .cs 代理文件中删除了我需要的所有方法(是的,1500+ 中只有 2 个),重新编译并获得了更好的结果。时间从 6-7 秒缩短到 20 毫秒以下。
编辑这些文件以手动删除它很乏味,所以我想我会用 Mono.Cecil 自动化它。如上所述,一切正常,但我担心 peverify 错误。
我知道你可以用 IL weaving 做一些非常复杂和疯狂的事情,但我只需要删除一堆未使用的方法。是的,我可以手动解析生成的源代码并将其从那里删除,但如果您曾经见过从 生成的 SOAP 代理svcutil
,那么这是我想避免的路径。
metadata - 元信息中的“CallCnvntn”是什么意思?
我的 *.exe 文件有以下元信息:
但我不明白“CallCnvntn”是什么意思。我在互联网上没有找到任何信息。
顺便问一下,你能解释一下 [AutoLayout]、[AnsiClass] 和 [BeforeFieldInit] 是用来做什么的吗?
c# - 找不到 ildasm.exe
我最近升级到 VS 2017 并卸载了之前的 VS 2015。
但是,当我尝试构建和编译我的项目时,我不断收到错误:
Microsoft.Build.Utilities.ToolLocationHelper could not find ildasm.exe
该项目使用 C# 的非托管导出 - https://www.nuget.org/packages/UnmanagedExports
我不明白为什么会出现这条消息,而谷歌搜索却什么也没显示。我确保目标框架是相同的 >> 4.5.2。但什么都不会建立!
我只能找到以下目录:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
请帮忙,谢谢