asp.net - 获取执行Web应用程序的汇编版本

标签 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 应用程序的程序集版本号?我还准备使用替代方法来生成每个构建唯一的 token ,这不需要应用程序开发人员执行额外的构建步骤。

最佳答案

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

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

关于asp.net - 获取执行Web应用程序的汇编版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11924540/

相关文章:

c# - 如何使用反射获取变量名?

java - 使用反射重写java方法

c# - Specflow 插件 : Generation error: Missing [assembly:GeneratorPlugin] attribute in

c# - 为什么可变长度不会增加程序集的大小?

asp.net - 为什么在页面级别撤销授权后 CheckUrlAccessForPrincipal 仍然返回 true?

asp.net - 在 ASP.NET WebForms 中找出控件处于生命周期的哪个阶段

c# - 我可以从 SELECT 语句中获得 SQL 注入(inject)攻击吗?

asp.net - 在 web.config 中从一个页面到另一个页面的简单重定向

c# - 如何在属性参数中进行方法引用

c# - 弱装配改为强装配