如何获取使用的dll版本

4

我正在开发一组使用公共库的Web部件。
为了测试部署,我需要在生成的HTML中添加版本信息。将版本“水印”添加到页面的方法在公共库中。

因此,我有类似于以下内容的东西(它更加复杂,因为公共库中有Web部件的基类,但对于这个问题,我们可以简化它):

在来自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)?

1
尝试使用Assembly.GetCurrent()和Assembly.GetCallingAssembly()。http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getcallingassembly.aspx - CodingBarfield
2个回答

7

调用程序集的版本:

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

要获取当前程序集的版本,请将代码的第一行替换为:
Assembly assem = Assembly.GetExecutingAssembly();

3

尝试使用

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接