在Compact Framework中获取文件版本信息

时间:2010-09-28 13:02:15

标签: .net windows-mobile compact-framework assemblies sql-server-ce

我有一些代码需要能够找到程序集的版本号,给定一个字符串说明它所在的位置。

我无法让这个工作:

Assembly assembly = Assembly.LoadFrom("\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\sqlcecompact35.dll");

抛出System.IO.IOException:找不到文件或程序集名称'\ Program Files \ Microsoft SQL Server Compact Edition \ v3.5 \ sqlcecompact35.dll'或其中一个依赖项。

然而该文件确实存在:

FileInfo fileInfo = new FileInfo("\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\sqlcecompact35.dll"); 

创建一个fileInfo.Exists == true。

的对象

我是否应该传入不同的文件名/路径来加载SQL CE程序集?感谢。

1 个答案:

答案 0 :(得分:3)

sqlcecompact35.dll 是一个托管程序集,因此无法通过Reflection加载。该DLL,以及其他文件,如sqlceqp35.dll,sqlceca35.dll(查看所有文件的发行版)是数据引擎的natie部分。您可能以这种方式加载的唯一托管程序集是System.Data.SqlServerCe.dll。

修改

在Compact Framework中获取本机文件的文件版本信息并不容易。我已经构建了blogged a solution来为您检索此信息。