获取执行Web应用程序的汇编版本

时间:2012-08-12 18:09:40

标签: asp.net reflection .net-assembly outputcache

我想在我的库中实现一些缓存破坏代码,它可以与ASP.NET Web应用程序/站点集成。这将通过将版本字符串附加到URL的末尾来实现。我想为缓存清除提供的默认版本提供程序将使用主机网站的程序集版本。

目前,这主要是我如何提取此版本号:

HttpContext.Current
           .ApplicationInstance
           .GetType()
           .Assembly
           .GetName()
           .Version
           .ToString()

不幸的是,至少对于我的示例测试站点,应用程序实例的Assembly是生成的程序集(我猜是因为global.asax被编译成新的程序集)。在Get web application assembly name, regardless of current executing assembly中,SLaks表示您可以使用BaseType来获取实际的网站程序集类型,但我认为如果网站不使用global.asax文件,BaseType会在BCL给你一些东西。

有没有可靠的方法来提取ASP.NET Web应用程序的程序集版本号?我也在寻找替代方法来生成一个每个构建唯一的令牌,不需要为应用程序开发人员提供额外的构建步骤。

1 个答案:

答案 0 :(得分:2)

我的策略是从我的自定义类型中选择一个类型,并向运行时询问此类型程序集的版本号。

 typeof( SomeKnownType ).Assembly.GetName().Version