Windows Store 应用中获取程序集版本号的方法
本文为个人博客备份文章,原文地址:
http://validvoid.net/windows-store-app-get-assembly-version/
WinRT 中对反射做了很多限制,假设 Windows Store 应用引用了一个程序集 MyApp.Utils,其中有一个类叫做 MyUtils,可以使用以下方法获得程序集 MyApp.Utils的版本号和文件版本号。
获得程序集版本号
方法一
using System.Reflection; public static string GetAssemblyVersion()
{
return Assembly.Load(new AssemblyName("MyApp.Utils"))
.GetName().Version.ToString();
}
注意方法一有两个限制条件,一是要求知道程序集的完整显示名称;二是程序集输出类型必须是“类库”(Class Library)。当程序集输出类型是“Windows 运行时组件”(Windows Runtime Component)时,方法一将返回如下错误:
Could not load file or assembly 'MyApp.Utils, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
方法二
using System.Reflection; public static string GetAssemblyVersion()
{
return typeof(MyUtils).GetTypeInfo().Assembly.GetName().Version.ToString();
}
方法二在程序集输出类型为类库或者 Windows 运行时组件时均可用,其限制条件是需知道程序集中的一个类,再通过 typeof(MyUtils).GetTypeInfo().Assembly 取得目标程序集,进而获得程序集的版本号。
获得程序集文件版本号
using System.Reflection; public static string GetAssemblyFileVersion()
{
return
CustomAttributeExtensions.GetCustomAttribute(
typeof(MyUtils).GetTypeInfo().Assembly).Version;
}
CustomAttributeExtensions 类包含了可以获得自定义特性的静态方法,可以通过此类,获得 AssemblyFileVersionAttribute 特性的值,也就是程序集的文件版本号。
可用性
以上方法在 Windows/ Windows Phone 8.1 Universal 以及 Windows 10 UWP 中测试可用。
参考
Windows Store 应用中获取程序集版本号的方法的更多相关文章
- C#中获取程序集版本号的方法
我的方法: string version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); 方法一: public v ...
- python中获取python版本号的方法
import platform print platform.python_version()
- python中获取python版本号的方法【转】
原文 python3 #!/usr/bin/python # 第1种方法 import platform print(platform.python_version()) >>> i ...
- 如何在 Windows Phone 8 中获取手机的当前位置
原文 如何在 Windows Phone 8 中获取手机的当前位置 适用于:仅限于 Windows Phone 8. 本主题演示如何使用 Windows Phone 位置 API 确定手机的当前位置. ...
- Windows Server 2008中关闭事件跟踪程序的方法
Windows Server 2008跟Windows Server 2003一样,在关机的时候会弹出一个“关闭事件跟踪程序”窗口,当然微软这么做是处于安全的考虑啦,但是如果我们只是个人用用的话,那就 ...
- android中获取root权限的方法以及原理(转)
一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...
- dede织梦栏目页和文章页中获取当前栏目名称方法
一般情况下,在dede织梦系统中列表页.栏目页和文章页中获取当前所在栏目名称只需要代码:{dede:type}[field:typename]{/dede:type}即可,不需要定义ID,默认的就是当 ...
- Android中获取文件路径的方法总结及对照
最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...
- LoadRunner中获取当前系统时间方法
LoadRunner中获取当前系统时间方法 发表于:2017-6-02 11:41 作者:人生_0809 来源:51Testing软件测试网采编 字体:大 中 小 | 上一篇 | 下一篇 | 打 ...
随机推荐
- 正经学C#_判断[IF语句]:[c#入门经典]
判断语句几乎是最为常用的语句之一,是最有效的. 先说IF语句,IF语句也是属于分支的一种,用来控制流程的. IF的语句是这样的 IF(xxx 条件) { //代码块 } ,b; ) { b=a--; ...
- binder学习笔记(十)—— 穿越到驱动层
Binder驱动层的代码在kernel/goldfish/drivers/staging/android下的binder.c和binder.h.Android源码是不带Linux内核的,驱动正是在这个 ...
- Visual Studio 2015安装插件
VS2015可以通过安装各种插件增强自己的功能! 插件安装方法: 下载插件后,打开VS2015,双击插件就会出现对应插件安装界面了,对应安装一下就可以了! 插件网址: https://marketpl ...
- 斐波那契数列的Python实现
斐波那契数列的Python实现:递归实现.非递归实现.斐波那契数列生成器: \[ \begin{equation} F(n)= \begin{cases} n & n=0, 1\\ F(n ...
- Elaxia的路线
Elaxia的路线 求无向图中,两对点间最短路的最长公共路径. 四遍spfa标出每条边的标记,然后用拓扑排序跑dp即可. exp:拓扑排序可以跑DAG上的dp. #include <cstdio ...
- 用户、组或角色 'zgb' 在当前数据库中已存在。 (Microsoft SQL Server,错误: 15023)
在使用SQL Server 时,我们经常会遇到一个情况:需要把一台服务器上的数据库转移到另外一台服务器上.而转移完成后,需要给一个"登录"关联一个"用户"时,往 ...
- docker log: containerid-json.log 文件disappear,问题排查及解决方案
问题排查: 运行 #docker info 查阅资料,知道了docker的logging driver相关理论:https://docs.docker.com/engine/admin/loggi ...
- Kibana6.x.x——导航权限控制入门
按如下图所示设置: 用该用户登录后,界面如图所示: 但遗憾的是,根据官方论坛的说法,其它的导航隐藏控制,暂时还不支持. 参考:https://discuss.elastic.co/t/hide-ina ...
- SQL语句 ANSI_NULLS 值(ON|OFF)的含义
官方说明: 1.当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行. 即 ...
- git只clone仓库中指定子目录和指定文件的实现
## step :初始化空库 [root@vm_test backup]# mkdir devops [root@vm_test backup]# cd devops/ [root@vm_test d ...