C# AssemblyBuilder无时间戳保存

C# AssemblyBuilder无时间戳保存,c#,clr,cil,portable-executable,C#,Clr,Cil,Portable Executable,我正在编写一个针对CIL(.Net字节码)的编译器,使用AssemblyBuilder生成可执行文件 var asm = AssemblyBuilder.DefineDynamicAssembly... 最后一步是 asm.Save("a.exe"); 我希望实现可复制的构建(使用相同版本的编译器编译的相同源代码应该生成相同的可执行文件)。这目前没有发生,最明显的原因是在可执行文件中放置了时间戳 时间戳为零时如何保存可执行文件?出于好奇,您在程序集中的何处看到时间戳?@MarcGravell

我正在编写一个针对CIL(.Net字节码)的编译器,使用AssemblyBuilder生成可执行文件

var asm = AssemblyBuilder.DefineDynamicAssembly...
最后一步是

asm.Save("a.exe");
我希望实现可复制的构建(使用相同版本的编译器编译的相同源代码应该生成相同的可执行文件)。这目前没有发生,最明显的原因是在可执行文件中放置了时间戳


时间戳为零时如何保存可执行文件?

出于好奇,您在程序集中的何处看到时间戳?@MarcGravell dumpbin/headers,5B4A3C7D时间戳Sat Jul 14 19:10:05 2018这是出于监管原因(例如,我知道赌博机需要可验证的构建)。微软有一个工具,可以用来验证两个EXE是相同的,而忽略了不断变化的部分。这可能需要很多询问和说服,但我知道这个工具存在于.NET2.0时代。我假设它仍然存在。@Flydog57我不是在一个受监管的行业工作。我只是认为编译器的核心功能应该是可复制的构建。roslyn有这个功能,它被称为deterministic,并映射到msbuild()。所以可能有一种方法。