当我进行C#项目的清理构建时,生成的dll与之前构建的(我单独保存的)不同。没有进行任何代码更改,仅仅是清理和重建。
Diff 显示 DLL 中的一些字节发生了改变——在文件开头和结尾附近都有几个改动,但我无法弄清这些改变代表什么。是否有人知道为什么会发生这种情况以及如何防止它发生?
我的环境是 Visual Studio 2005 / WinForms。
更新:没有使用自动版本增量或对程序集进行签名。如果这是某种时间戳,那么怎样才能阻止VS将其写入?
更新:在查看 Ildasm/diff 后,似乎以下部分不同:
- 文件开头的 PE header 中的两个字节。
- <PrivateImplementationDetails>{guid} 部分
- 字符串表中含义难懂的部分,靠近文件末尾(不知道为什么,我没有更改这些字符串)
- 文件末尾的程序集信息的一部分。
我不知道如何消除其中的任何一个部分,如果有可能的话...