2013-02-20 107 views
2

我的解決方案中有兩個項目。我需要從第二個項目中的第一個項目獲取圖像文件的相對路徑。我怎麼能這樣做?如何從同一解決方案中的其他項目獲取項目的相對路徑?

已經嘗試過代碼this resource

我從項目A引用項目B和使用(在項目A):

@"/ProjectB;component/images/prod-2809854.jpg" 

不工作。

我知道我可以使用這個(在項目A):

AppDomain.CurrentDomain.BaseDirectory 

它將返回項目A的基本目錄。比我想我可以解析字符串,獲取解決方案目錄並附加ProjectB/images/它。

這是正確的方式嗎?它可以做得更好嗎?

謝謝!

編輯:作爲一個例子我在控制檯應用程序中運行代碼(即添加到相同的解決方案,導致在這個階段我無法測試我的Windows服務應用程序)。我需要得到的圖像相對路徑:

// e.g. to check the GetMonitoringPath() method in main() in console app 
Console.WriteLine(File.Exists(GetMonitoringPath())); 

public static string GetMonitoringPath() 
    { 
     return @"/WebStore;component/images/prod-2809854.jpg"; 
    } 

File.Exists()返回false,但該文件存在,我敢肯定:)

+0

這兩個項目都是web項目嗎?如果是這樣,爲什麼你不能在HTML中使用「../ProjectB/images/」? – David 2013-02-20 20:45:04

+0

不,一個項目是web而另一個是windows服務 – 2013-02-20 20:47:18

+0

哪個項目包含圖像?該圖像是否被標記爲該項目中的嵌入式資源?圖像是動態生成的嗎? 「System.IO」名稱空間中的任何方法(如File.Exists)都不適用於鏈接文章所討論的資源路徑。 – David 2013-02-20 21:25:17

回答

0

這對我的作品

<img alt="" style="cursor:pointer" src="../../../Booking/images/plus.gif" /> 

後鍵入src,VS會要求你選擇yr的URL。

如果這不起作用,請張貼關於你在做什麼的代碼。

0

如果您想從控制檯應用程序或服務訪問Web項目中的文件,我會保持簡單並在其他項目的app.config appSettings中存儲Web項目的路徑。

如果文件在編譯期間存在,則可以使用嵌入式資源在項目之間共享文件。除此之外,需要使用某種路徑(相對或其他)來引用其他文件夾。

+0

如何在App.config中存儲相對路徑? – 2013-02-21 07:34:24

+0

如果您的控制檯應用程序正在從「ProjectA \ bin \ debug」運行,那麼相對路徑將如下所示: David 2013-02-21 15:13:24

+0

由於某種原因,此路徑不起作用。我得到:路徑具有非法的形式 – 2013-02-26 11:16:41

相關問題