我有两个程序集A.exe和B.exe。两者都是Windows.Forms .net 3.5程序集。 A.exe知道B.exe在同一目录中。
如何从A.exe找到B.exe的 ProductName ?
答案 0 :(得分:7)
FileVersionInfo类在这里很有用。 [AssemblyProduct]属性被编译到非托管版本信息资源中。此代码适用于任何.exe:
private void button1_Click(object sender, EventArgs e) {
var info = System.Diagnostics.FileVersionInfo.GetVersionInfo(@"c:\windows\notepad.exe");
MessageBox.Show(info.ProductName);
}
答案 1 :(得分:0)
以下是如何通过代码阅读汇编信息的示例。
http://www.c-sharpcorner.com/UploadFile/ravesoft/Page112282007015536AM/Page1.aspx
您可以使用[Assembly.Load()][1]
方法加载特定的程序集。
答案 2 :(得分:-2)
此方法可能会对您有所帮助。
您需要名称空间“System.Reflection”才能使用以下代码。
//fileName = @"...\B.exe"; //The full path of the file you want to load
public string GetAssemblyProductName(string fileName)
{
Assembly fileAssembly = null;
try
{
fileAssembly = Assembly.LoadFile(fileName);//Loading Assembly from a file
}
catch (Exception error)
{
Console.WriteLine("Error: {0}", error.Message);
return string.Empty;
}
if (fileAssembly != null)
{
string productName = fileAssembly.GetName().Name;//This is for getting Product Name
//string productName = fileAssembly.GetName().FullName;//This is for getting Full Name
return productName;
}
else
{
Console.WriteLine("Error: Not valid assembly.");
return string.Empty;
}
}