我已經在VS 2010中使用安裝項目創建了一個安裝程序。它將我的應用程序安裝到程序文件文件夾中讓我們說XXX。我的應用程序進一步創建一些文件和文件夾到XXX文件夾。在卸載時,它會刪除由安裝程序創建的所有內容,而由我的應用程序創建的文件和文件夾仍保留在XXX中。如何在卸載時刪除應用程序文件夾
我寫了一些自定義代碼來使用installerclass刪除文件夾(XXX),但是當用戶從控制面板上卸載時執行成功時不會執行,當從我創建的安裝程序卸載時成功執行。
回答
我不認爲你應該寫的任何自定義代碼,如果您所有的文件被標記爲臨時的,不是永久的,這將直接由MSI引擎處理。
玩文件夾,文件和安裝項目本身的配置和屬性,你會得到你所需要的,沒有代碼寫入。
你能幫我解決上述問題嗎?在我的情況下,我的應用程序在運行時創建了幾個文件,導致從控制面板卸載MSI的過程不去除包含文件的文件夾。我的要求是卸載MSI所有與wwwroot文件夾一起存在的文件夾應該被刪除並且wwwroot文件夾必須是乾淨的。你能幫我解決這個問題嗎? –
我用PowerShell腳本卸載MSI,並在該代碼現在我打電話給下面的PowerShell,它可以幫助我刪除文件夾中的所有文件夾:刪除項目「C:\ Temp \ Fldr \ *」 - 強制 - 撤消 - ErrorAction SilentlyContinue並解決了問題。 –
第一步是修改您的應用程序,以便將其數據寫入每個用戶的位置而不是應用程序文件夾。例如,您可以在當前用戶的AppData目錄中使用自定義文件夾。這樣您可以避免與權限相關的問題。
要刪除此文件夾,您確實可以使用自定義操作。如果它在您的安裝項目中的卸載下添加,它應該同時運行控制面板和程序包卸載。
嘗試創建一個並搜索您的自定義操作名稱以查看會發生什麼。
我的猜測是您的自定義刪除文件操作安排在UI部分。當從控制面板啓動卸載時,它將以最小UI模式運行,並跳過所有對話框。
您的自定義操作必須安排在InstallExecute
表中。
(與UAC兼容的,它必須是推遲與noimpersonate。然而,你的應用程序本身不兼容UAC,因此它並不真正的問題。)
- 1. 如何在卸載應用程序時刪除臨時文件夾
- 2. 如何在卸載應用程序時刪除文件
- 3. 如何在卸載黑莓應用程序時刪除文件夾
- 4. 如何在C#.NET應用程序中卸載時刪除文件夾?
- 5. 在卸載應用程序時從sdcard中刪除文件
- 6. NSIS:卸載時刪除文件夾
- 7. 如何在卸載過程中按條件刪除文件夾?
- 8. 如何刪除一個文件的卸載android應用程序?
- 9. 刪除一個文件夾,同時卸載我的應用程序,Windows 7
- 10. NSIS卸載程序不會刪除文件/文件夾
- 11. 如何在卸載應用程序時刪除數據?
- 12. 如何在卸載過程中刪除文件夾?
- 13. 如何在卸載時刪除日誌文件夾?
- 14. 如何在卸載應用程序時從SDcard中刪除文件
- 15. 如何在卸載時從應用程序數據目錄中刪除文件?
- 16. 如何在卸載應用程序時保留應用程序的文件夾和下載文件
- 17. 卸載msi刪除應用程序
- 18. 刪除應用程序時是否刪除文檔文件夾?
- 19. Installshield,卸載程序不會刪除所有文件夾
- 20. 刪除User.config在卸載程序時
- 21. 如何刪除應用程序目錄,而卸載Android應用
- 22. 如何在Android中卸載我的應用程序時從SDCard中刪除文件夾?
- 23. 從iOS中卸載應用程序時刪除日曆事件
- 24. 如何通過編程刪除應用程序文件目錄,同時卸載Android應用程序?
- 25. 卸載clickonce應用程序後刪除額外的文件
- 26. 卸載應用程序後JSON文件是否會被刪除?
- 27. 在卸載Android 2.3時清除應用程序外部文件
- 28. Android:應用程序私人文件夾,如果該應用程序已卸載/降級,則不會被刪除
- 29. 如何刪除由應用程序文件夾外部的應用程序刪除的文件夾
- 30. 卸載時刪除文件和文件夾
@Davide我知道這並不回答你的問題,但你應該避免在你的應用程序安裝文件夾中寫入任何東西 - 沒有適當權限的用戶可能會導致你的應用程序失敗。 (OTOH,我承認,即使您寫入AddData或類似的文件,您的卸載問題仍將保留) –
感謝Davide的建議,我會牢記這一點。 – Vipul