如何获取所用dll的版本

发布于 2024-10-19 11:05:36 字数 630 浏览 1 评论 0原文

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

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

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

所以我的问题是:当我们从该程序集中使用方法时,如何获取程序集的版本? (在添加水印中)?是否可以获得调用程序集的版本? (主要装配)

I'm working on set of webparts that uses common library.
To testing deployment I need to add version info in generated html. Method that add version "watermark" to page is in common library.

So I have something like this (it is more complicated, because in common library is base class for webparts, but for this problem we can simplify it):

In control from mainAssembly.dll I'm calling OnInit method:

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

and in common library I have:

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

So my question is: how to get version of assembly when we are in method from this assembly? (in AddWatermark)? And if it is possible to get version of caller assembly? (mainAssembly)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

毁虫ゝ 2024-10-26 11:05:36

调用程序集的版本:

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

要获取当前程序集的版本,请将第一行代码替换为

Assembly assem = Assembly.GetExecutingAssembly();

Version of caller assembly:

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

To get version of current assembly replace first line of code with

Assembly assem = Assembly.GetExecutingAssembly();
千と千尋 2024-10-26 11:05:36

尝试使用

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

Try to use

        Assembly.GetCallingAssembly();
        Assembly.GetExecutingAssembly();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文