2013-08-16 17 views
0

我會盡量簡單快速System.IO.FileNotFoundException在調試但不與exe

我正在開發一個程序,實際上是一個Windows窗體。 我有一個圖片框和下面的行,當我在調試模式下運行(注意),我得到一個System.IO.FileNotFoundException異常:

pictureBox1->Image = Image::FromFile(".\\images\\no-avatar2.jpg"); 

的問題是,我不明白的是例外當我運行的exe文件和文件加載完美。 任何想法爲什麼發生這種情況?

+0

*始終*使用完整的文件路徑,你會遇到麻煩的時候Environment.CurrentDirectory變化或與人分享你的啓動程序錯誤的工作目錄。從Assembly.GetEntryAssembly()。位置創建完整路徑。 –

+0

我沒有明白,對不起。 「總是使用完整的路徑」?那麼,我不能再使用相對路徑了?我希望這可以在用戶選擇安裝程序的任何目錄下工作。我不覺得這是個好主意。你能解釋更多嗎? – Yannis

+0

這就是爲什麼你必須使用Assembly.GetEntryAssembly()。位置,它告訴你程序的安裝位置。 –

回答

1

我用這個:

pictureBox1->Image = Image::FromFile(System::IO::Path::GetDirectoryName(System::Reflection::Assembly:‌:GetEntryAssembly()->Location) + "\\images\\no-avatar2.jpg"); 

和它完美的作品

相關問題