2012-05-25 30 views
0

我創建一個小的C#WinForms應用程序。它使用sqlite數據庫來存儲數據,我被要求在此應用程序中添加更新功能,以便用戶可以更新sqlite文件以及其他任何文件,而無需重新安裝應用程序。WinForms應用程序不保存下載文件

問題是,當我進行更新時,它看起來好像一切正​​常,沒有錯誤等,但是當我在應用程序安裝目錄中看到一些下載的文件丟失時(通常是pdf文件),一旦更新已經下載,它會創建一個Updates.txt文件來跟蹤它所做的更新。如果我然後卸載並重新安裝應用程序,就像它已經完成更新一樣,即使Updates.txt文件丟失。

奇怪的是,如果我打在Visual Studio中運行,做一個更新所有的工作沒有任何問題的100%的時間,它只是當我生成安裝項目和安裝引起的問題。也許有一個設置項目中的文件被複制到其他地方?我完全不知道。

請幫忙。謝謝。

編輯:這是如何我下載文件

String filename = "//test.pdf"; 

WebClient client = new WebClient(); 
client.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed); 

client.DownloadFileAsync(new Uri(dlFile), System.IO.Directory.GetCurrentDirectory() + filename); 

UPDATE:這是一個權限問題,要解決它,我forced the app to run as administrator

+0

什麼是存儲文件的目錄路徑? – Maciej

+1

你是否檢查過對你使用的文件夾有權限? – Ras

+0

嗨,我試過改變權限,但它看起來不像它有任何影響。仍然是同樣的問題。如果這可行,我如何確保在另一臺用戶機器上正確設置權限而無需訪問? – JDx

回答

1

我會感到驚訝,如果它不是一個權限問題。給適當的用戶讀/寫你正在寫的文件夾,看看是否不能解決問題。它在Visual Studio中工作的原因是Visual Studio(很可能)以管理員身份運行,因此它的子任務也是如此。如果這不起作用,請拋出一些更多的調試語句來查看事情開始出錯的地方。

+0

感謝您的回答。看到我對主要問題的評論。 – JDx

1

如果您在Program Files文件安裝應用程序,那麼很可能你沒有權限寫入文件。您需要以管理員身份運行應用程序,或者通過代碼提升它。

+0

感謝您的回答。看到我對主要問題的評論。 – JDx

相關問題