如何找出另一个程序集的产品名称属性?

我有两个组件A.exe时和B.EXE。 两者都是Windows.Forms的.NET 3.5组件。 A.exe时知道B.EXE是在同一个目录。

我如何才能找到B.EXE的产品名称从A.exe时?

--------------解决方案-------------

该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);
}

下面是关于如何通过代码读取组件信息的例子。

http://www.c-sharpcorner.com/Uplo​​adFile/ravesoft/Page112282007015536​​AM/Page1.aspx

你可以加载使用特定的程序集[Assembly.Load()][1]的方法。

这种方法可以帮助你。

你需要的名字空间“的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;
}
}

分类:C# 时间:2015-03-15 人气:0
本文关键词: .NET,C#,反思
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.302 (s). 10 q(s)