我有一个Windows WPF应用程序,它编译为" MyApp.exe"。此应用程序引用我的名为" MyDll.dll"的DLL。在DLL中,我有以下功能:
public string GetFileDescription()
{
System.Diagnostics.FileVersionInfo fileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
return fileVersionInfo.FileDescription;
}
此函数应该读取可执行文件的文件描述。但是,它返回的是DLL的相同内容。
如果我将该功能复制到应用程序,它就可以正常工作。但该函数应保留在DLL中。
如何从引用的dll获取可执行文件的程序集信息?
我在Stack Overflow上读了多个问题(包括this),但没有一个涉及DLL。这个question是关于可执行文件的名称;我想要可执行文件描述。
答案 0 :(得分:2)
使用Assembly.GetEntryAssembly()
而不是Assembly.GetExecutingAssembly()
来获取条目(即EXE)而不是当前(即DLL)。