我可以把它作为一个字符串:
Assembly.GetExecutingAssembly().GetName().Version()
Run Code Online (Sandbox Code Playgroud)
如何将此数字转换为int?
8.0.0.1
8001
VVS*_*VVS 12
如果您真的必须进行此转换,则至少应为每个版本部分保留足够的数字位数.
主要,次要和修订的两个数字和Build的四个数字:
var version = Assembly.GetExecutingAssembly().GetName().Version();
Debug.Assert(version.Major >= 0 && version.Major < 100)
Debug.Assert(version.Minor >= 0 && version.Minor < 100)
Debug.Assert(version.Build >= 0 && version.Build < 10000)
Debug.Assert(version.Revision >= 0 && version.Revision < 100)
long longVersion = version.Major * 100000000L +
version.Minor * 1000000L +
version.Build * 100L +
version.Revision;
int intVersion = (int) longVersion;
Debug.Assert((long)intVersion == longVersion)
Run Code Online (Sandbox Code Playgroud)
请注意,对于某些特殊版本,此方法仍然会失败!
甚至不要考虑版本21.47.4836.48 :)
编辑:添加断言.
| 归档时间: |
|
| 查看次数: |
5898 次 |
| 最近记录: |