2013-09-25 76 views
0

我創建了一個Windows應用程序項目,它工作正常。在表單加載時,它讀取一個文本文件並將數據打印到表格中的表格中。當我發佈並執行它時,它會拋出文件丟失錯誤。當我將項目轉換爲可執行文件時,文本文件丟失。該文本文件存在於應用程序的開始路徑文件夾中。發佈時我錯過了什麼嗎?創建EXE文件後文件丟失錯誤

錯誤: System.IO.FileNotFoundException: Could not find file 'C:\Users\\AppData\Local\Apps\2.0\4V17NKV8.EJ8\H5VC3CZ8.AM3\atum..tion_5f39d67ebcfcae03_0001.0000_14487f1ba676fa3d\Data'.

我使用的Visual Studio 2012和C#項目。

+0

您介意在您嘗試加載文本文件的位置發佈代碼嗎? – wonko79

回答

0

我找到了這個錯誤的答案。其實我在分配文件路徑時犯了錯誤。此前我已指定文件路徑如下:

private void Form1_Load(object sender, EventArgs e) 
    { 
     StreamReader sr = new StreamReader"E:/123.txt"); 
     richTextBox1.Text = sr.ReadToEnd(); 
    } 

所以創建可執行文件,當我們在其他一些系統中運行的可執行文件,我們應該在同一個文件夾中複製此txt文件後(E:/123.txt) 。但那不公平。但使用安裝程序的方法,我們可以嵌入文件,如果你不想創建安裝文件,並直接exe文件意味着做到以下幾點。

  1. 右鍵單擊項目名稱並選擇添加現有文件來添加文件。它將在列表中添加文件。

2.

private void Form1_Load(object sender, EventArgs e)   
    { 
     string path; 
     path = System.IO.Path.GetDirectoryName(
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); 
     path = path.Replace("file:\\", ""); 
     StreamReader sr = new StreamReader(path +"/123.txt"); 
     richTextBox1.Text = sr.ReadToEnd(); 
    } 

你應該添加的System.Reflection的命名空間。 3.然後發佈您的項目,它將部署與您發佈的數據文件。