如何指定.NET程序集的主要版本?
目前,我正在使用如何指定.NET程序集的主要版本?,.net,versioning,.net,Versioning,目前,我正在使用AssemblyVersionAttribute指定已编译程序集的程序集版本。 但是,AssemblyVersionAttribute只允许指定16位版本。如何指定MajorRevision大于零?类Version的MajorRevision和MinorRevision属性分别从Revision属性计算,如Revision>>16和Revision&0xffff(尝试在反射器中打开mscorlib) 程序集版本控制不支持长度大于16位的修订号。此数据存储在程序集二进制文件的16位
AssemblyVersionAttribute
指定已编译程序集的程序集版本。
但是,
AssemblyVersionAttribute
只允许指定16位版本。如何指定MajorRevision
大于零?类Version
的MajorRevision
和MinorRevision
属性分别从Revision
属性计算,如Revision>>16
和Revision&0xffff
(尝试在反射器中打开mscorlib)
程序集版本控制不支持长度大于16位的修订号。此数据存储在程序集二进制文件的16位部分。换句话说,程序集版本仅支持
Version
类功能的子集。您可以在十六进制编辑器中看到这一点:将版本设置为,例如,1.0.0.65534,将给出编译后的DLL中的十六进制字节0100 0000 0000 feff
。尝试在以下两个字节中插入一个值,然后检查程序集不会将版本号增加到超过16位。否,MajorRevision
编号:如何将65535指定为(-1)?根据说明Revision
未定义?(省略该数字会将其设置为0。)不确定我是否理解您的第一个问题-您是否在寻找负数的解释?如果无法指定MajorRevision
,我希望将Revision
设置为0xFFFF,根据上面的链接,这意味着修订未定义。但是AssemblyVersionAttribute
只允许从0到0xFFFE的整数。因此,我正在寻找一些通配符(例如“?”,类似于“*”)或其他方式来指定它。当然,通过AssemblyVersionAttribute
不可能。对不起,我在哪里可以通过ILSpy或Reflector看到这个?是否有其他方式来指定它,例如,以另一种方式对编译器说它(更好)或者在编译后使用一些工具箱修改版本(更糟)?