问题标签 [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 回答
912 浏览

c# - 公共语言运行时检测到无效程序 - ILGenerator

基本上我试图将字节数组内的数据反序列化为对象。我正在尝试使用 UTF8 编码的 GetString 方法来读取字符串。这是我的代码的一部分:

我在这段代码之外检查了“getstring”的方法签名,它可以工作。我尝试删除'.boxIfAny',我也尝试使用'call'而不是'callvirt'。据我了解,“callvirt”是适用于这种情况的实例方法。有任何想法吗?

0 投票
1 回答
298 浏览

c# - 使用 ilasm.exe 汇编器创建 Compact Framework DLL

所以我试图修改一个 Compact Framework 来导出一个 C 函数。它在完整框架上运行良好。

此处描述了所使用的方法。https://sites.google.com/site/robertgiesecke/Home/uploads/csharpprojecttemplateforunmanagedexports

无论如何,问题似乎是,如果我将 Compact Framework Dll 拆解然后重新组装,它似乎将其重新组装为完整框架 Dll。

知道如何将其重新组装为 Compact Framework Dll。

0 投票
1 回答
194 浏览

il - 如何在“发布”模式下使用 ilasm

我想使用 ilasm 来编译 il 代码。我可以使用很多参数。在 Visual Studio 中,我可以简单地在项目设置中勾选“优化代码”。如何使 ilasm 编译器在“发布”模式下编译,优化代码并创建尽可能少的调试信息 -> 我希望获得最佳性能。

0 投票
1 回答
360 浏览

c# - 拆卸时.net图标丢失

我使用命令“ildasm MyApp.exe /output:MyApp.il”对应用程序进行了分解,然后它生成了一些资源文件和 MyApp.il。之后,我将所有生成的文件和 .il 文件复制到 ilasm.exe 的文件夹中。使用命令“ilasm MyApp.il”构建它后,它生成了 MyApp.exe 文件,但没有图标。请帮我恢复图标,谢谢。

0 投票
1 回答
185 浏览

enterprise-library - 微软企业库的强命名

我在我的一个项目中使用 Microsoft 企业库。我需要强命名其中一个 .dll 文件Microsoft.Practices.EnterpriseLibrary.Common。但它不起作用。

当我使用 ILDASM 反编译时,它会生成 3 个文件。

  1. 文件
  2. .RESOURCES文件
  3. 公共资源脚本文件

如何使用密钥文件编译它。我应该使用哪个ILASM命令?

0 投票
0 回答
71 浏览

.net - ECMA CLS 标准表明 TypeSpec 对于属性 getter/setter 是可选的,但 ilasm 抱怨

根据 CLR ECMA 标准文档的第 196 页,以下是用于定义类属性 getter 的 MSIL 语法。

.get 指定此属性的 getter。TypeSpec 默认为当前类型。一个属性只能指定一个 getter。为了符合 CLS,getter 的定义应标记为 specialname。

请注意上面的粗体部分,以及 TypeSpec '::' 在 [] 内的事实

所以我认为这意味着我应该能够在课堂上做到这一点:

然而, ilasm 不接受,抱怨道:

错误:未解析的全局成员引用“get_Top”错误:未解析的全局成员引用“set_Top”

它只接受 Stack`1::get_Top():

完整的属性 + 方法如下所示:

我误解了规范吗?

0 投票
1 回答
643 浏览

.net - 使用 ilasm.exe 对未签名的程序集进行签名并以 .NET 2.0 为目标

我正在为 SQL Server 2008 创建一个 CLR 程序集,它只支持 .NET 2.0 程序集。此外,SQL Server 还要求您要注册的每个程序集都有一个强名称键。

我尝试创建的程序集引用了 .NET 2.0 版本的 json.net ( https://json.codeplex.com/ )。但是,我的项目无法生成 SNK 文件,因为 Newtonsoft.Json.dll 本身是未签名的。(至少这是我在尝试构建项目并对其进行签名时遇到的错误。)

我使用这里描述的技巧解决了这个问题:http: //buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

但是,当用我的项目的 SNK 重新组装 Newtonsoft.Json.dll 时,它必须生成目标框架高于 .NET 2.0 的 DLL。我知道这一点是因为我在 SQL Server 中收到以下错误:

有谁知道如何让 ilasm.exe 在目标框架 .NET 2.0 中生成程序集?或者我可能完全错误地解决了这个问题 - 如果有更好的解决方案可以在 2008 年的 CLR 程序集中使用 Newtonsoft.Json,我很想知道。谢谢!

0 投票
1 回答
958 浏览

c# - CIL - 如何使用公共静态文字字段?

这可能是一个愚蠢的问题,但我真的很好奇我是否能做到这一点。我编写了以下示例程序:

Y 编译了这个mcs,然后我用monodis. 得到以下代码:

我想用来ldsfld加载b的值。如果我将 IL_0006 更改为ldsfld int32 Test.Test1::b,它将组装,但是当我运行可执行文件时,我得到一个异常:

有什么方法可以使用static literal而不是仅仅使用ldc

0 投票
1 回答
148 浏览

c# - 即时创建我的程序集的签名副本

我需要即时制作我的程序集的签名副本。

我试图通过在构建后事件中添加这个脚本来做到这一点:

但是,当我引用签名的程序集时,我得到一个运行时异常“无法加载文件或程序集'MyAssembly, Version=1.2.5511.31417, Culture=neutral, PublicKeyToken=b025765091e877ec' 或其依赖项之一。系统找不到文件指定的。”

我尝试使用反射器从 MyAssemblySignedVersion.dll 创建一个项目,但它无法编译,因为缺少某些命名空间,可能是由于重新组装了反汇编的 dll。这可能有关系吗?

我怎样才能使这项工作?提前非常感谢。

0 投票
0 回答
514 浏览

c# - 具有超过 1024 个资源文件的 ilasm.exe 中的错误是否有解决方法?

我指的是微软已知但被忽略的错误。请参阅此处了解更多信息。当程序集中的嵌入资源超过 1024 个时,就会发生这种情况。这看起来像这样: 伊斯兰错误

当我使用 Dotfuscator 混淆程序集时会出现此问题。该工具本身使用 ilasm.exe。我可以使用任何解决方法来避免此错误吗?