我想在我的应用程序中显示我的应用程序版本号,最简单的方法是使用程序集的版本号。
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
var name = assembly.GetName();
return String.Format("Version {0}.{1}", name.Version.Major, name.Version.Minor);
我可以毫无问题地执行汇编,但是对 GetName()
的调用返回一个带有此消息的 MethodAccessException
Attempt by security transparent method 'MainPage..ctor()' to access security critical method 'System.Reflection.Assembly.GetName()' failed.
为什么会发生这种情况,我能做些什么吗?如果不能,还有其他方法可以检索程序集版本吗?
最佳答案
我从 Stackoverflow ( Getting runtime version of a Silverlight assembly ) 得到这个 ... 对我有用:
public static string GetVersion()
{
string versionNumber = ParseVersionNumber(Assembly.GetExecutingAssembly()).ToString();
return versionNumber;
}
private static Version ParseVersionNumber(Assembly assembly)
{
AssemblyName assemblyName = new AssemblyName(assembly.FullName);
return assemblyName.Version;
}
关于c# - 无法从我的 Silverlight 应用程序调用 Assembly.GetName(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7925141/