2012-08-12 80 views
1

我想在我的庫中實現一些可以與ASP.NET Web應用程序/站點集成的緩存清除代碼。這將通過在URL末尾附加版本字符串來實現。我想提供緩存清除的默認版本提供程序將使用主機網站的程序集版本。獲取執行Web應用程序的程序集版本

目前,這基本上是我如何提取此版本號:

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應用程序的程序集版本號?我也爲生成獨特的每個構建令牌的替代方法提供了幫助,這些方法不需要爲應用程序開發人員提供額外的構建步驟。

+0

嘗試使用this.GetType()......而不是 – BozoJoe 2014-05-21 21:34:11

回答

2

我的策略是從我的自定義類型中選擇一種類型,並向運行時詢問此類型程序集的版本號。

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

如果這個庫與集成的網站是下*我*代碼庫,將工作。然而,我的問題是關於我的圖書館哪些*其他*插入*他們的*網站。我沒有辦法知道他們網站程序集中的類型。 – Jacob 2012-08-12 18:30:04

+0

然後讓您的配置提供一個委託或一個類實現一些您將調用的接口,從而獲得版本信息。這不是自動的,但可以完全控制所需的參數。 – 2012-08-12 19:41:43

相關問題