Asp.net 获取正在执行的web应用程序的程序集版本

Asp.net 获取正在执行的web应用程序的程序集版本,asp.net,reflection,.net-assembly,outputcache,Asp.net,Reflection,.net Assembly,Outputcache,我想在我的库中实现一些缓存破坏代码,这些代码可以与ASP.NET web应用程序/站点集成。这将通过在URL末尾追加一个版本字符串来实现。我想为缓存破坏提供的默认版本提供程序将使用宿主网站的程序集版本 目前,我基本上就是这样提取这个版本号的: HttpContext.Current .ApplicationInstance .GetType() .Assembly .GetName()

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

目前,我基本上就是这样提取这个版本号的:

HttpContext.Current
           .ApplicationInstance
           .GetType()
           .Assembly
           .GetName()
           .Version
           .ToString()
不幸的是,至少对于我的示例测试站点来说,应用程序实例的
Assembly
是一个生成的程序集(我猜是因为
global.asax
被编译成了一个新的程序集)。在中,SLaks说您可以使用
BaseType
获取实际站点程序集的类型,但我假设如果站点不使用
global.asax
文件,
BaseType
将在BCL中提供一些信息


是否有可靠的方法提取ASP.NET web应用程序的程序集版本号?我还准备使用其他方法来生成唯一的每生成令牌,而不需要应用程序开发人员执行额外的生成步骤。

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

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

如果与此库集成的站点位于我的代码库下,那么这将起作用。然而,我的问题是关于我的图书馆,其他人将其插入他们的网站。我没有办法知道它们的网站程序集中的类型。然后,让程序为您的配置提供一个委托或一个实现您将调用的某个接口的类,从而获得版本信息。这不是自动的,但提供对所需参数的完全控制。请尝试使用此.GetType()。。。。。相反