如何获得使用过的dll的版本

时间:2011-03-01 10:13:05

标签: c# .net dll

我正在处理使用公共库的一组webpart 要测试部署,我需要在生成的html中添加版本信息。向页面添加版本“水印”的方法在公共库中。

所以我有这样的东西(它更复杂,因为在常见的库中是webparts的基类,但是对于这个问题,我们可以简化它):

在mainAssembly.dll的控制下,我正在调用OnInit方法:

protected override void OnInit(EventArgs e)  
{  
..  
    Library.AddWatermark(this);  
..  
}

在公共图书馆我有:

public void AddWatermark(Control ctrl)  
{    
    string assemblyVersion = GetAssemblyVersion();  
    ctrl.Controls.Add(new HiddenField { Value = string.Format("Version: {0}",   assemblyVersion ) });  
}  

所以我的问题是:当我们从这个程序集中获取方法时如何获得程序集的版本? (在AddWatermark中)?如果有可能获得调用者程序集的版本? (mainAssembly)

2 个答案:

答案 0 :(得分:7)

来电者汇编的版本:

Assembly assem = Assembly.GetCallingAssembly();
AssemblyName assemName = assem.GetName();
Console.WriteLine(assemName.Version.Major);
Console.WriteLine(assemName.Version.Minor);

要获取当前程序集的版本,请使用

替换第一行代码
Assembly assem = Assembly.GetExecutingAssembly();

答案 1 :(得分:3)

尝试使用

        Assembly.GetCallingAssembly();
        Assembly.GetExecutingAssembly();