我可以在构建.net程序集时指定模块版本ID(MVID)吗?

我们有一些共享程序集,每晚都会自动构建。如果没有对源进行任何更改,我希望程序集二进制文件与先前版本完全相同。 但是,程序集之间似乎存在细微差别。 我已经做了一些努力来确定两个版本之间的区别。我使用
ildasm
生成il版本,并比较了生成的文本版本。唯一的区别(在IL中)是模块中的MVID(随机guid)。 一些谷歌搜索告诉我模块版本ID由编译器生成,因此可以确定构建源,即使其他所有内容都相同。 此MVID在相同代码的构建之间创建人工差异,并对所得到的程序集进行人工检查。 是否可以将MVID提供给C#编译器?     
已邀请:
ECMA-335标准说:   MVID是用来区分的Guid   两个版本之间相同   模 根据这个描述,提供这个是C#编译器的一个参数将击败它的目的,因为你可以为不同的构建传递相同的MVID所以我会说不。 我认为更简单的方法是只在每天晚上不一定发生变化时进行构建。     
我意识到这是一个5岁的问题,但我做了一个Fody插件,允许你为一个程序集指定一个自定义MVID(我自己的测试需要) 你可以通过nuget获得它:
Install-Package Mvid.Fody
然后,您可以指定这样的自定义MVID:
[assembly: Mvid("your-guid-string-here")]
当程序集编译时,它将具有您指定的Guid的MVID。 更多信息:https://github.com/hmemcpy/Mvid.Fody     

要回复问题请先登录注册