问题标签 [ilasm]

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.

0 投票
1 回答
100 浏览

.net - 无法在 VS2019 中构建 CSCORE - 后期构建中的 ilasm 失败

下列的

重定向到 .NET 4.7.2 后无法编译 CSCORE

使用 ilasm 失败,但没有给出原因

尝试在 VS2019 中构建 CSCore。最初 postbuild 脚本的路径与我的环境不兼容,所以我修复了它们。现在它有点工作,除了它在调用它的 InlineILCompiler 以在库中注入 CLR 代码时在 postbuild 脚本中中断。

更准确地说,它在 InlineILCompiler\Program.cs 的大约第 350 行处中断,在它调用外部 ilasm.exe 以使用“disasm.il”作为输入重新组装所有内容的步骤中。

我设法在 disasm.il 被删除之前获得了它的副本,并且我尝试自己重新发出 ilasm 命令,使用的参数与 InlineILCompiler 提供的参数相同......但它失败了,如下所示:

我对 IL 了解不多,但我仍然进行了调查,发现违规行似乎处于阻塞状态:

更准确地说,带有 -nan(ind) 的行:

不知道现在该怎么办,有什么想法吗?谢谢你。

0 投票
2 回答
256 浏览

c# - 处理双 NaN 和 Inf 时的 ILASM 问题

我创建了一个初始化了 double 类型值的简单程序,

var a = double.NaN;

我使用 Visual Studio 2019、.net framework 4.5 构建项目,并使用 ILDASM.exe 版本 4.0.30319.0 将其反汇编为 .il 文件

IL_0001: ldc.r8 -nan(ind)

但是当我尝试使用 ILASM.exe 版本 4.8.3752.0 组装它时出现错误

test.il(65) : 错误 : 标记“-”处的语法错误:IL_0001: ldc.r8 -nan(ind)

这也发生在 Double.PositiveInfinity 和 Double.NegativeInfinity 上。任何人都可以帮忙吗?

0 投票
0 回答
21 浏览

c# - ILASM.exe 显示关于 System.Memory 包的不同版本

我一直在尝试在 .NET Framework 4.7 中的类库项目中安装ServiceStack.Text包。

最新的稳定版本是 5.11.0 并且有一个依赖 System.Memory( >= 4.5.4) 我安装了 System.Memory(v.4.5.4) 包没有任何错误。然后我尝试启动我的应用程序,我收到与 JIT 相关的错误和“System.IO.FileLoadException:'Could not load file or assembly'System.Memory, Version=4.0.1.0”错误。

我调查了通过 ILASM.exe 安装的 System.Memory 的版本,发现它的版本是4.0.1.1。根据Nuget 包管理器项目文件,它是 v.4.5.4。我附上了所有的照片。

首先,为什么 ilasm.exe 向我显示了与目标版本不同的版本?其次,如何解决ServiceStack.Text包的版本问题?