当前位置:编程学习 > C#/ASP.NET >>

在网上看到很多人问怎么读取AssemblyInfo.cs中的内容

在网上看到很多人问在WEB应用程序里怎么读取AssemblyInfo.cs中的内容,有详细答案的并不多,我也没能找到这个问题的解决办法(不要拍砖啊,本人小菜一个)。不过我想问这个问题的初衷可能是为了获取WEB应用程序的版本号等信息,而获取版本号可以用另外的方法。现在来说下。
取的程序exe的版本号并显示在主界面上,办法如下:
FileVersionInfo newVersion = FileVersionInfo.GetVersionInfo(filePath); // filePath为.exe或dll文件路径,如果是当前路径下,直接为文件名即可。
this.lblSysVersion.Text = newVersion.FileVersion;

对exe程序来说很容易得到文件所在的路径,可对WEB程序来说,就需要用Server.MapPath来获取WebApp.dll的路径。我当初做的时候,怎么都获取不了WebApp.dll的路径。后来发现原来是方法用错了。
Server.MapPath的用法是
1、Server.MapPath("/")
注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。
2、Server.MapPath("./")
注:获得所在页面的当前目录,等价于Server.MapPath("")。
3、Server.MapPath("../")
注:获得所在页面的上级目录。
4、Server.MapPath("~/")
注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example\。
开始的时候,获取WebApp的路径我用的是
string filePath= Server.MapPath("/") + @"bin\WebApp.dll";
调试的时候一点问题都没有,可是发布之后,总也不对,通过看Log终于发现我之前用的方法一直是在获取C:\Inetpub\wwwroot\bin\WebApp.dll的信息,因为C:\Inetpub\wwwroot\中并没有bin这个目录所以肯定会报错。
方法修改为string filePath= Server.MapPath("~/") + @"bin\WebApp.dll";终于没问题了。希望大家能尽量避免烦我犯过的错误。能弄清Server.MapPath的用法。
FileVersionInfo类的属性我就不再Copy&&Paste了。
--------------------编程问答-------------------- 本来想说的,一看又是个蛋贴,果断闪人.
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,