2012-08-17 43 views
1

我有一個名爲「fAgent.dll」的類庫,我在兩個應用程序中使用這個dll文件。一個應用程序是桌面應用程序,另一個是網絡這個dll文件必須讀取一個bin文件或一個xml文件。我可以打開bin文件在桌面上是這樣的:我如何才能在Web上的類庫中運行路徑?

FileStream fs = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\MyApp\\ConnSettings.bin", FileMode.Open); 

如果DLL不能找到bin文件,它嘗試讀取XML文件是這樣的:

XmlDocument doc = new XmlDocument(); 
var path = (new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath; 
doc.Load(path + "\fCns.xml"); 

上FileNotFoundException異常就試試這個代碼:

Xml文件和dll文件位於同一個文件夾中。它可以在桌面上運行,並且不能在網絡上運行。我不得不使用Mappath函數來獲取Web上的「〜/ bin」文件夾。我怎樣才能做到這一點?

感謝您的回答。

回答

1

使用HttpRuntime.BinDirectory財產,甚至更好 - 把文件放到App_Data文件夾而不是垃圾桶,如果你將修改文件中的bin文件夾的應用程序將重新啓動

var filePath = System.IO.Path.Combine(HttpRuntime.BinDirectory, "ConnSettings.bin"); 
+0

遺憾,這不是工作。我使用bin文件夾,因爲我從來沒有改變這個XML文件。 – 2012-08-17 11:38:40

+0

我已編輯答案。如果它仍然不起作用檢查是'ConnSettings.bin'確實存在於'bin'文件夾中 – 2012-08-17 11:48:40

+0

這個代碼我可以訪問該文件,但是當我發佈時,它不起作用。可能是,我必須使用虛擬路徑。因爲在web上,filePath會返回:「c:\ inetpub \ wwwroot \ bin \ ConnSettings.bin」此路徑正確但無法正常工作... – 2012-08-17 15:05:00

相關問題