You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android MAUI应用发布后获取程序集版本遇FileNotFoundException的解决办法

在Android MAUI发布版中获取应用版本的解决方案

问题根源

调试阶段,MAUI应用的程序集以独立DLL文件形式存在,assembly.Location能正确定位到DLL路径;但发布APK时,Android会将程序集打包进APK内部的优化文件(如.dex),原DLL路径不再有效,导致FileVersionInfo.GetVersionInfo触发文件找不到异常。

最优跨平台方案

使用MAUI内置的跨平台应用信息API,无需依赖程序集文件路径,适配所有平台(包括发布版Android):

using Microsoft.Maui.ApplicationModel;

string appVersion = AppInfo.Current.VersionString;

程序集版本获取方案(若需)

如果需要获取程序集本身的版本信息,可直接读取程序集属性,避开文件IO操作:

using System.Reflection;

// 获取程序集的InformationalVersion(通常包含版本+构建信息)
Assembly executingAssembly = Assembly.GetExecutingAssembly();
var infoVersionAttr = executingAssembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>();
string assemblyInfoVersion = infoVersionAttr?.InformationalVersion ?? "Unknown";

// 或者获取程序集的正式版本号
Version assemblyVersion = executingAssembly.GetName().Version;
string assemblyVersionStr = assemblyVersion?.ToString() ?? "Unknown";

补充说明

  • AppInfo.Current.VersionString读取的是项目文件(.csproj)中Version节点配置的值,与应用商店展示的版本一致。
  • 直接读取程序集属性的方式完全在内存中操作,不会受发布打包方式影响,稳定性更高。

内容的提问来源于stack exchange,提问作者Álvaro García

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:23:12