2

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

目前,这基本上是我提取此版本号的方式:

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

不幸的是,至少对于我的示例测试站点Assembly来说,应用程序实例是一个生成的程序集(我猜是因为它global.asax被编译成一个新的程序集)。在获取 Web 应用程序程序集名称中,无论当前正在执行的程序集如何,SLaks 都表示您可以使用它BaseType来获取实际站点程序集的类型,但我假设如果站点不使用global.asax文件,BaseType则会在 BCL 中为您提供一些东西。

是否有任何可靠的方法来提取 ASP.NET Web 应用程序的程序集版本号?我还准备使用替代方法来生成每个构建唯一令牌,这不需要应用程序开发人员额外的构建步骤。

4

1 回答 1

2

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

 typeof( SomeKnownType ).Assembly.GetName().Version
于 2012-08-12T18:17:50.083 回答