无法从我的 Silverlight 应用程序调用 Assembly.GetName()
我想在我的应用程序中显示我的应用程序版本号,最简单的方法是使用程序集的版本号。
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
var name = assembly.GetName();
return String.Format("Version {0}.{1}", name.Version.Major, name.Version.Minor);
我可以毫无问题地执行汇编,但对 GetName()
的调用返回带有此消息的 MethodAccessException
尝试通过安全透明方法“MainPage..ctor()”访问安全关键方法“System.Reflection.Assembly.GetName()”失败。
为什么会发生这种情况,我能做些什么吗?如果没有,是否有其他方法来检索程序集版本?
I want to display my application version number within my application, and the simplest way to do this is to use the version number for the assembly.
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
var name = assembly.GetName();
return String.Format("Version {0}.{1}", name.Version.Major, name.Version.Minor);
I can get the executing assembling without problem, but the call to GetName()
returns a MethodAccessException
with this message
Attempt by security transparent method 'MainPage..ctor()' to access security critical method 'System.Reflection.Assembly.GetName()' failed.
Why is this happening, is there anything I can do about it, and if not is there another means of retrieving the assembly version?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我从 Stackoverflow 得到这个(获取 Silverlight 程序集的运行时版本) ...对我有用:
I got this from Stackoverflow (Getting runtime version of a Silverlight assembly) ... works for me:
Assembly.GetName 标记有 SecurityCriticalAttribute 属性,请尝试使用 GetCallingAssembly().FullName 并从中获取版本信息。
来自:http://msdn.microsoft。 com/en-us/library/9w2wdeze(VS.95).aspx
The Assembly.GetName is marked with SecurityCriticalAttribute attribute try using
GetCallingAssembly().FullName
and scrape the version info out of it.from: http://msdn.microsoft.com/en-us/library/9w2wdeze(VS.95).aspx