Visual Studio可以记住我的源文件的MD5,以避免在时间戳更改但不是内容时重建它们吗?

Ben*_*oit 5 build-process visual-studio-2010 visual-studio

大部分时间我在同一个项目上做了几个不同的开发,并且为了在它们之间进行一些逻辑分离,我在一个项目中使用个人版本控制系统(即化石,但这太过细节了).

这允许我在不同的分支中提交我的工作,以便之后合并它们.与此同时,我维护了一个行李箱分支,我在那里承担了同事的工作.

但是,当我从一个分支切换到另一个(以便执行例如一些合并行动),并回到我来自哪里时,Visual Studio来将检测时间戳修改和重建还没有真正被修改的文件.

有没有办法要求Visual Studio在其内容的某些哈希值发生更改时考虑源文件已更改?

由于答案似乎是"不",这是实现我想要的另一种方式,为此我开始赏金.请继续阅读以上内容.

您知道一种简单的方法来获取源文件的时间戳和MD5哈希值的快照,然后,对于时间戳更改的每个文件,如果MD5没有更改,则比较MD5和回滚时间戳修改?

谢谢您的回答.

sho*_*osh 3

恐怕这实际上是不可能的。

这里的问题是,这不仅仅是 VS 的问题,实际上是整个构建系统的问题,它与实际的 IDE 完全分开。
为了决定是否.obj应该编译,VS 将其时间戳与源文件的时间戳进行比较。按照您的建议操作将要求.obj文件包含文件的 MD5。这也适用于.exe.dll文件。对于这样一个很少需要的功能来说,更改这些文件的二进制格式不太可能发生。


编辑-我收回它,这在理论上可能是可能的。一种方法是编写 VS 插件。该插件会将 MD5 保存到输出目录中的某个文件中,并且在构建开始之前将更新相应文件的修改日期。

进一步思考,这可能使用预构建步骤来实现..?

  • 为什么把它放在“.obj”本身中?这是多余的,替代方案是可能的(创建另一个文件,如果在 NTFS 驱动器上则创建替代数据流,以及其他可能性)(@Rup:同一分钟与您相同的想法) (2认同)