2010-09-22 36 views
0

卸載所以,我一直在寫於C#無法寫入Application.ExecutablePath,有些框我可以有些我不能?從這個

Environment.SpecialFolder.ApplicationData 

這個數據文件,即卸載時需要刪除。我正在使用 Innos Setup來構建我的安裝程序。這對我很有效。所以,我的數據文件中的上述路徑掛了,我這樣做的原因時,我曾經嘗試把它寫到我測試了它

Application.ExecutablePath 

某些盒上會朝我扔一個討厭的錯誤嘗試有寫入數據。我做了研究,不知何故它並不總是可寫的,它的環境如何.SpecialFolder.ApplicationData

這就是爲什麼我的數據文件現在駐留在SpecialFolder.ApplicationData中。麻煩的是,如果用戶卸載並重新安裝,我需要該文件消失。這可能是我對Innos的瞭解,但我無法弄清楚如何知道該文件將告訴innos。

於是我想我有一個聰明的解決方案:Innos可以運行一個文件,它完成卸載時,所以我有我的程序創建該文件「uninstallData.bat」,上面寫着:

del "the file in my special folder application data path" 

和我寫的它以擊鼓聲

Application.ExecutablePath 

(是的,它是在發展了一段時間,我已經忘了was't可行的。)

所以考爾的se我回到了原來的位置,我需要寫一個文件到Innos知道{app}的路徑,我需要它能夠在SpecialFolder中刪除我的數據文件...我不在乎我該怎麼做我只需要那個文件就沒了。

是否有其他環境。或應用程序。接受我錯過了?也許某個地方可以通過卸載程序查看並且可以寫入?

順便說一句,我不知道爲什麼我的盒子我開發上可以到應用程序文件夾沒有寫問題,但它不能在其他箱子...怪異。

任何投入將是巨大的八九不離十丟失如何破解這個螺母。

+0

請codejoy,再次重寫你的問題,這樣大家都可以理解你在說什麼... – 2010-09-22 05:31:13

+0

默認情況下,在Windows XP和以上Application.ExecutablePath需要管理員權限(或至少高級用戶)寫入。 – 2010-09-22 05:36:35

回答

1

環境位置在用戶配置文件中。如果機器上有多個用戶,並且他們都運行該應用程序,則該文件的副本將位於每個配置文件中。

該路徑還取決於操作系統。

無論如何,當前用戶的應用數據位置由%APPDATA%%LOCALAPPDATA%指向。這些Windows環境變量應該在Innos中可用。

+0

謝謝我會與Innos一起嘗試。 – Codejoy 2010-09-22 05:56:26

1

Appliccation.ExecutablePath是不是每個標準defintions寫 - Program Files文件夾不應該被運行的應用程序進行操作。針對該區域的特殊文件夾數量。很高興你終於找到了......現在微軟正確地記錄了很長時間(最少10年)。

我建議你得到一個合適的安裝程序 - WIX出現在我的腦海。你的問題與C#完全無關 - 它似乎完全是一個「蹩腳的安裝程序」問題。或者提供一個PROGRAM(不是bat文件)在卸載時運行。那裏有什麼問題是你的問題?

+0

我猜它是糟糕的安裝程序。我可以編寫一個單獨的小文件來刪除特殊文件夾中的數據文件。由於我不確定特殊文件夾是如何「標準」的。它們是否根據操作系統而變化?我想現在我知道它叫做「特殊文件夾」,我可以查看它。 – Codejoy 2010-09-22 05:46:13

+0

其實你應該看看它。這完全記錄了很長時間。我可以回答這個問題,但是認真 - 只需在Visual Studio中打F1即可,並且可以獲得所有文檔。 – TomTom 2010-09-22 05:55:10

相關問題