2011-07-16 75 views
0

我有一個WebSite項目 - ASPX 4.0。在這裏面我有這樣一個文件夾:ASPX - 什麼是我的文件夾在網站的路徑?

bin\Xslt\Template.xslt

我希望加載這個文件在我的類庫。在web.config中是:

<configuration> 
    <appSettings> 
     <add key="Filepath" value=".\Xslt\Template.xslt" /> 
    </appSettings> 
</configuration> 

但是,我的類庫不能找到它:

mTransform = new XslCompiledTransform(); 
mTransform.Load(ConfigurationManager.AppSettings["Filepath"]); 

拋出:Could not find a part of the path 'C:\Xslt\Template.xslt'. 我知道有一個問題在這裏,但我不記得正確的way ...

如何正確引用aspx \ bin \文件夾中的文件?

回答

0

我發現的方式(因爲它是在組裝和我不想上添加的System.Web依賴):

string codeBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); 
string filepathRelative = ConfigurationManager.AppSettings["Filepath"]; 

string fullFilepath = Path.Combine(codeBase, filepathRelative); 

感謝

編輯:該System.AppDomain.CurrentDomain.BaseDirectory也做的伎倆......

1

使用Server.Mappath("~\xslt\template.xslt");

1

試着改變你的鑰匙:

<add key="Filepath" value="~/bin/Xslt/Template.xslt" /> 

您的代碼更改爲:

mTransform.Load(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["Filepath"])); 
+0

由於這是一類庫,我想避免添加對System.Web的引用... – veljkoz

0

儘量給的完整路徑在你的web配置 例如,如果你文件位於C:\ VSPROJECTS \ bin \ Xslt \ Template.xslt

然後在你的webconfig寫爲
<添加鍵= 「文件路徑」 值= 「C:\ VSPROJECTS \ BIN \ XSLT \ Template.xslt」/>

+0

絕對路徑將隨着部署到生產環境而改變,並且我想盡量減少對部署細節的依賴... – veljkoz

相關問題