我想在我的库中实现一些缓存清除代码,这些代码可以与 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/