CLR 中获取Assembly的版本信息可以用一行代码实现:
Assembly . GetExecutingAssembly (). GetName (). Version
MethodAccessException
同样的代码在Silverlight 的CoreCLR中执行会返回一个异常
可通过如下代码(vb.net)实现:
Public Shared Function GetAppVersion() As String
Dim asm As Assembly = Assembly.GetExecutingAssembly()
Dim asmName As AssemblyName = New AssemblyName(asm.FullName)
Return asmName.Version.ToString()
End Function
Silverlight使用的CoreCLR的安全模型与CLR不同,msdn blog上有一篇博文 给出了说明,上面异常的原因是GetName方法为critical code, 被程序代码(transparent code
)调用。