问题标签 [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.
c# - 公共语言运行时检测到无效程序 - ILGenerator
基本上我试图将字节数组内的数据反序列化为对象。我正在尝试使用 UTF8 编码的 GetString 方法来读取字符串。这是我的代码的一部分:
我在这段代码之外检查了“getstring”的方法签名,它可以工作。我尝试删除'.boxIfAny',我也尝试使用'call'而不是'callvirt'。据我了解,“callvirt”是适用于这种情况的实例方法。有任何想法吗?
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。
il - 如何在“发布”模式下使用 ilasm
我想使用 ilasm 来编译 il 代码。我可以使用很多参数。在 Visual Studio 中,我可以简单地在项目设置中勾选“优化代码”。如何使 ilasm 编译器在“发布”模式下编译,优化代码并创建尽可能少的调试信息 -> 我希望获得最佳性能。
c# - 拆卸时.net图标丢失
我使用命令“ildasm MyApp.exe /output:MyApp.il”对应用程序进行了分解,然后它生成了一些资源文件和 MyApp.il。之后,我将所有生成的文件和 .il 文件复制到 ilasm.exe 的文件夹中。使用命令“ilasm MyApp.il”构建它后,它生成了 MyApp.exe 文件,但没有图标。请帮我恢复图标,谢谢。
enterprise-library - 微软企业库的强命名
我在我的一个项目中使用 Microsoft 企业库。我需要强命名其中一个 .dll 文件Microsoft.Practices.EnterpriseLibrary.Common
。但它不起作用。
当我使用 ILDASM 反编译时,它会生成 3 个文件。
- 文件
.RESOURCES
文件- 公共资源脚本文件
如何使用密钥文件编译它。我应该使用哪个ILASM
命令?
.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():
完整的属性 + 方法如下所示:
我误解了规范吗?
.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,我很想知道。谢谢!
c# - CIL - 如何使用公共静态文字字段?
这可能是一个愚蠢的问题,但我真的很好奇我是否能做到这一点。我编写了以下示例程序:
Y 编译了这个mcs
,然后我用monodis
. 得到以下代码:
我想用来ldsfld
加载b的值。如果我将 IL_0006 更改为ldsfld int32 Test.Test1::b
,它将组装,但是当我运行可执行文件时,我得到一个异常:
有什么方法可以使用static literal
而不是仅仅使用ldc
?
c# - 即时创建我的程序集的签名副本
我需要即时制作我的程序集的签名副本。
我试图通过在构建后事件中添加这个脚本来做到这一点:
但是,当我引用签名的程序集时,我得到一个运行时异常“无法加载文件或程序集'MyAssembly, Version=1.2.5511.31417, Culture=neutral, PublicKeyToken=b025765091e877ec' 或其依赖项之一。系统找不到文件指定的。”
我尝试使用反射器从 MyAssemblySignedVersion.dll 创建一个项目,但它无法编译,因为缺少某些命名空间,可能是由于重新组装了反汇编的 dll。这可能有关系吗?
我怎样才能使这项工作?提前非常感谢。
c# - 具有超过 1024 个资源文件的 ilasm.exe 中的错误是否有解决方法?
我指的是微软已知但被忽略的错误。请参阅此处了解更多信息。当程序集中的嵌入资源超过 1024 个时,就会发生这种情况。这看起来像这样:
当我使用 Dotfuscator 混淆程序集时会出现此问题。该工具本身使用 ilasm.exe。我可以使用任何解决方法来避免此错误吗?