当我们通过调试器运行ASP.NET时,它运行在一个特殊的目录中,如:
C:\ Program Files \ Common Files \ Microsoft Shared \ DevServer \ 10.0
我不知道这个目录是否可配置。问题是,如果您有Transfer.xsl
之类的文件,则将其属性“Copy to Output Directory”设置为“Copy if newer”。这会将文件复制到bin。
但是,我们没有在垃圾箱内跑。所以,如果我使用相对路径
StorageFolder \ Transfer.xsl
变成......
C:\ Program Files \ Common Files \ Microsoft Shared \ DevServer \ 10.0 \ StorageFolder \ Transfer.xsl
但是,即使您设置了上述属性,Visual Studio也会在此处不复制文件。
在过去,我通过编写预构建例程来解决此问题,将依赖关系映射到此“临时文件夹”。它有效,但是flippen吸了caseadillas。
有更好的方法吗?
答案 0 :(得分:2)
在ASP.NET应用程序中,您可以使用App_Data
特殊文件夹来存储文件。如果您想获得此文件的完整路径,请使用MapPath
方法:
string fullPath = Server.MapPath("~/App_Data/Transfer.xsl");