【问题标题】:Can AssemblyName.Version throw an error?AssemblyName.Version 可以抛出错误吗?
【发布时间】:2014-02-09 19:30:20
【问题描述】:

我想知道AssemblyName.Version 是否会遇到错误,例如在尝试从清单文件中检索它时。

我可以手动修改文件的 VS(例如文本编辑器)之外的某个地方的程序集版本并放入 无效的版本格式,以便在尝试检索时并将其与另一个版本进行比较,我会得到某种例外。

如果可以进行这样的编辑,AssemblyName.GetAssemblyName("path") 会成功吗?

【问题讨论】:

  • 测试你的理论可能比发布一个关于它的问题花费更少的时间
  • 程序集版本在编译时嵌入到程序集中 - 它不是从文件中读取的。所以不,你不能那样打破它。
  • @Jonesey 我试过测试它:)。我想不出破解版本的方法。
  • @Matthew Watson,谢谢!这回答了我的问题。

标签: c# exception version .net-assembly


【解决方案1】:

MajorVersionMinorVersionBuildNumberRevisionNumber 存储在程序集中,每个 2 个字节。有人确定可以更改这些值,但没有可能的“无效”值,因为每个 2 字节值都被解释为介于 0 到 UInt16.MaxValue - 1 之间的无符号整数

因此,更改(无符号)程序集中的这些值只会更改程序集的外观版本。

属性AssemblyName.Version只是返回加载程序集时填充的字段的值,不能抛出异常。

这并不是说您不能以其他方式破坏您的程序集...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2018-11-29
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多