gpt4 book ai didi

c# - 如何在 C# Compact Framework 中获取 exe 应用程序名称和版本

转载 作者:IT王子 更新时间:2023-10-29 04:22:35 26 4
gpt4 key购买 nike

我的应用程序有一个 exe 并使用了一些 DLL。我全部用 C# 编写。

在一个 DLL 中我想写一个方法来从 exe 中的版本信息中获取应用程序名称和版本。

我知道在完整的 .NET 中我可以使用 GetEntryAssembly,但在 CF 中不可用。

最佳答案

获取应用名称:

System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;

获取版本:

System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;

如果您的 DLL 试图获取 EXE 版本,您可能希望使用 GetCallingAssembly() 或按类型获取程序集(例如 typeof(Program).Assembly)而且您无法立即访问它。

编辑

如果您有一个 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;

关于c# - 如何在 C# Compact Framework 中获取 exe 应用程序名称和版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14829689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com