如何在C#Compact Framework中获取exe应用程序名称和版本
我的应用程序有一个exe并使用一些DLL。 我用C#写所有内容。
在一个DLL中,我想编写一个方法来从exe中的版本信息中获取应用程序名称和版本。
据我所知,在完整的.NET中,我可以使用GetEntryAssembly,但这在CF中是不可用的。
获取应用名称:
System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
获取版本:
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
您可能希望使用GetCallingAssembly()
或按类型获取程序集(例如typeof(Program).Assembly
)如果您的DLL正在尝试获取EXE版本并且您无法立即访问它。
编辑
如果你有一个DLL,并且你需要可执行文件的名称,你有几个选项,具体取决于用例。 您可以从EXE程序集中包含的类型获取程序集,但由于DLL很少引用EXE,因此需要在该类型的对象中传递EXE。
Version GetAssemblyVersionFromObjectType(object o) { o.GetType().Assembly.GetName().Version; }
您也可以像这样做一些结束运行:
[DllImport("coredll.dll", SetLastError = true)] private static extern int GetModuleFileName(IntPtr hModule, StringBuilder lpFilename, int nSize); ... var name = new StringBuilder(1024); GetModuleFileName(IntPtr.Zero, name, 1024); var version = Assembly.LoadFrom(name.ToString()).GetName().Version;
System.Reflection.Assembly.GetEntryAssembly().GetName().Version;
此函数将从其他库加载的位置提供Application版本。
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
这将给出当前库的版本。 如果你在应用程序库中调用它,你将获得应用程序版本,如果在DLL中调用它,那么将获得该DLL版本。
所以在我看来System.Reflection.Assembly.GetEntryAssembly().GetName().Version;
是当前使用的function。
如果要创建组件(.dll),请使用另一个应用程序引用来获取主应用程序名称和版本,您可以使用以下方式:
获取主应用程序名称:
AppDomain.CurrentDomain.DomainManager.EntryAssembly.GetName().Name;
获取版本:
AppDomain.CurrentDomain.DomainManager.EntryAssembly.GetName().Version.ToString();
获取FullName(包含:app name,app version,culture,publicKeyToken):
AppDomain.CurrentDomain.DomainManager.EntryAssembly.FullName;
但在此解决方案中存在一个问题,即依赖于主机,如果它直接从可执行文件运行,则会发生错误。 因此以下选举:
获取主应用程序名称:
string appName = AppDomain.CurrentDomain.FriendlyName; appName = appName.Substring(0, appName.IndexOf('.'));
获取版本:
System.Windows.Forms.Application.ProductVersion;
你可以尝试使用FileInfo
类FileVersionInfo
。 希望这会有所帮助..
您也可以像GetModuleFile()一样尝试Win32 API
上述就是C#学习教程:如何在C#Compact Framework中获取exe应用程序名称和版本分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1034019.html