C#学习教程:如何在C#CompactFramework中获取exe应用程序名称和版本我用C#编写所有内容。在一个DLL中,我想写一个方法来从exe中的版本信息中获取应用程序名称和版本。据我所知,在完整的.NET中我可以使用GetEntryAssembly,但这在CF中不可用。获取应用名称:System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;获取版本:System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;如果您的DLL试图获取EXE版本而您无法立即访问它,您可能希望使用GetCallingAssembly()或通过类型Assembly(例如typeof(Program).Assembly)获取。编辑如果你有一个DLL,并且你需要可执行文件的名称,你有几个选项,具体取决于用例。您可以从EXE程序集中包含的类型获取程序集,但由于DLL很少引用EXE,因此您需要在该类型的对象中传递EXE。版本GetAssemblyVersionFromObjectType(objecto){o.GetType().Assembly.GetName().Version;你也可以像这样做一些结束运行:...变量名=新的StringBuilder(1024);GetModuleFileName(IntPtr。零,名称,1024);varversion=Assembly.LoadFrom(name.ToString()).GetName().Version;System.Reflection.Assembly.GetEntryAssembly().GetName().Version;此函数将提供加载其他库的应用程序版本。System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;这将提供当前库版本。如果您在应用程序库中调用它,您将获得应用程序版本,如果您在DLL中调用它,您将获得该DLL版本。所以在我看来System.Reflection.Assembly.GetEntryAssembly().GetName().Version;是当前使用的函数。如果你正在创建一个程序集(.dll),使用另一个应用程序引用来获取主应用程序名称和版本,你可以使用这种方式:获取主应用程序名称:AppDomain.CurrentDomain.DomainManager.EntryAssembly.GetName().Name;获取版本:AppDomain.CurrentDomain.DomainManager.EntryAssembly.GetName().Version.ToString();获取全名(包含:应用名称、应用版本、文化、publicKeyToken):AppDomain.CurrentDomain.DomainManager.EntryAssembly.FullName;但是在这个解决方案中存在一个依赖于主机的问题,如果它直接从可执行文件运行,则会发生错误。所以选如下:Getmainapplicationname:stringappName=AppDomain.CurrentDomain.FriendlyName;appName=appName.Substring(0,appName.IndexOf('.'));获取版本:System.Windows.Forms.Application.ProductVersion;您可以尝试使用FileInfo类FileVersionInfo。希望这有帮助..你也可以尝试像GetModuleFile()这样的Win32API以上是C#学习教程:如何在C#CompactFramework中获取exe应用程序名称和版本如果它对每个人都有用,请分享完整内容我需要了解更多关于C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
