【问题标题】:Where CSC Compiler Generate PE file?CSC编译器在哪里生成PE文件?
【发布时间】:2015-11-20 04:31:16
【问题描述】:

举个例子,在命令提示符中我们给出为,

 >csc /out:"C:\HelloWorld.exe" "C:\HelloWorld.cs"

CSC编译器会生成PE文件。该文件将保存在哪里?

【问题讨论】:

  • 你说你想要 PE 文件的位置:C:\Helloworld.exe。 C# 编译器不生成 IL 文件;那就是生成 IL 文件的 ILDASM。我无法弄清楚你在这里问什么;您似乎对 C# 编译器生成的文件有一些错误的看法。
  • 反对者。我可以知道downvoate的原因吗?
  • Eric Lippert : 我想知道在构建 .cs 文件时 pe 文件将保存在哪里。

标签: c# visual-studio compilation msbuild csc


【解决方案1】:

PE executable format 中的 EXE 将位于您使用 out 参数指定的位置,如果您不指定,则位于当前文件夹中。

不确定您在谈论什么“IL”文件,但 IL(或者更确切地说是字节码)+元数据是 EXE 文件的一部分。

如果您需要有关 PE 格式本身的详细信息 - 可以在 MSDN 上找到规范:PE Format

如果您正在寻找 IL,您可以使用 ILDASM(.Net SDK 的一部分)或许多其他 .Net 反编译器来查看 IL。如果您想快速进行实验并查看 IL - LinqPad.net 是非常方便的工具。

【讨论】:

  • 我可以知道生成 pe 文件的命令吗?因为在给出上述命令时没有生成pe文件
  • @Karthikeyan:.EXE 文件是一个 PE 文件。 PE 代表“可移植的可执行文件”。 EXE 是可执行文件。
  • 所以在编译时不会生成 .pe 文件,只会生成 .exe。对吗?
  • @Karthikeyan 如果您链接到您期望的“.pe”文件,则可以更轻松地查看您要查找的内容。您可以任意命名输出文件(包括“HelloWorld.pe”),但 CSC 只会生成 DLL/EXE(PE 格式)。我在帖子中添加了几个链接,这可能有助于澄清每个人从您的问题中读到的内容(可能与您想知道的不完全相符)。
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 2012-12-23
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多