【发布时间】:2020-05-06 04:07:44
【问题描述】:
我正在尝试针对 .NetCore3.1 控制台应用运行作为 Visual Studio 2019 的一部分安装的 ildasm(中间语言反汇编程序)。
使用 Visual Studio 2019 的 Developer 命令提示符并运行以下命令
ildasm.exe D:\DotNet\IntroductionToCsharp\IntroductionToCsharp\bin\Debug\netcoreapp3.1\IntroductionToCsharp\bin\Debug\netcoreapp3.1\IntroductionToCsharp.exe
但出现以下错误:
'D:\DotNet\IntroductionToCsharp\IntroductionToCsharp\bin\Debug\netcoreapp3.1\ IntroductionToCsharp.exe'没有有效的CLR头,不能反汇编
注意:在非核心 (.Net Framework 4.x) exe 上运行相同的命令可以正常工作。也许在 .Net Core 中查看 IL 需要一些特别的东西?
【问题讨论】:
-
您是否忘记添加 .dll 扩展名?
-
我添加了扩展 .exe 但仍然没有运行
-
.NETCore 应用的构建方式非常不同,.exe 文件是 host。你的代码被编译成.dll,你可以反汇编。
-
或者简单地说,那个.exe文件相当于dotnet.exe,所以它是一个本机可执行文件,而不是.NET程序集。