于很多有趣的原因,asp.net程序中雖然可以往app_code目錄中追加assemblyinfo.cs文件,但位于該文件中的版本號(hào)總是無(wú)法正確的顯示在用戶(hù)面前。
如果你通過(guò)下面的語(yǔ)句企圖像其他.net應(yīng)用程序一樣獲取assembly中的版本號(hào)的話,你將永遠(yuǎn)得到一個(gè)0.0.0.0的字符串。
system.reflection.assembly.getassembly(this.gettyp e()).getname().version.tostring();
很多人能說(shuō)出一堆理由來(lái)告訴我企圖在asp.net程序中獲取程序集版本號(hào)是多么愚蠢的一件事,我對(duì)此也非常的理解,并表示認(rèn)同,但如果得到變態(tài)的要求的話我們還是需要?jiǎng)邮謥?lái)實(shí)現(xiàn)這件事情的。
首先在app_code文件下下增加一個(gè)assemblyinfo.cs文件,文件的內(nèi)容模板可以從其他.net應(yīng)用程序中復(fù)制。
其次,在global.asax文件的application_start段落中增加如下代碼:
global.asax
void application_start(object sender, eventargs e)
{
// ...
// load assembly
application.add(assembly, system.reflection.assembly.load(app_code/assemblyinfo.cs));
// ...
}
簡(jiǎn)單來(lái)說(shuō)就是直接指定assembly文件,然后直接放到application的緩存中。
最后就是在代碼中獲取版本號(hào),既然知道是怎么存進(jìn)去的,取出來(lái)就簡(jiǎn)單了:
versionnumber.text = ((system.reflection.assembly)application[assembly]).getname().version.tostring();
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄